2011-08-23 101 views
0

需要一些幫助。Button Click Event Not Firing

描述: 我有一個WorkFlow類型UserControl是從DataGrid的Add New命令啓動的。 UserControl的第1步允許用戶輸入一些搜索條件,點擊下一個按鈕它將顯示一個動態創建的UserControl(步驟2),顯示檢索到數據網格中的數據行。然後用戶選擇他們想要建模新條目的行,然後單擊srNextButton進入最終的數據輸入屏幕。

問題: 動態創建的用戶控件(步驟2)上的srNextButton不會觸發按鈕事件處理程序代碼,也不會引發任何類型的回發。我做錯了什麼?

用戶控件第二步:

<div style="width: 1000px; height: 400px; overflow: scroll;"> 
     <telerik:RadGrid ID="grd1" runat="server" CellSpacing="0" GridLines="None"> 
      <headercontextmenu cssclass="GridContextMenu GridContextMenu_Default"> 
    </headercontextmenu> 
      <mastertableview tablelayout="Auto" width="95%"> 
     <CommandItemSettings ExportToPdfText="Export to PDF"></CommandItemSettings> 
     <RowIndicatorColumn FilterControlAltText="Filter RowIndicator column"> 
      <HeaderStyle Width="20px"></HeaderStyle> 
     </RowIndicatorColumn> 
     <ExpandCollapseColumn FilterControlAltText="Filter ExpandColumn column"> 
      <HeaderStyle Width="20px"></HeaderStyle> 
     </ExpandCollapseColumn> 
     <EditFormSettings> 
      <EditColumn FilterControlAltText="Filter EditCommandColumn column"> 
      </EditColumn> 
     </EditFormSettings> 
    </mastertableview> 
      <clientsettings> 
     <Selecting AllowRowSelect="True" /> 
    </clientsettings> 
      <filtermenu enableimagesprites="False"> 
    </filtermenu> 
     </telerik:RadGrid> 
     <asp:Button runat="server" ID="srNextButton" OnClick="nextButton_Click" Text="Next" 
      CssClass="nextButton" AutoPostBack="true" /> 
     <asp:Button runat="server" ID="btnCancel" OnClientClick="CancelEdit()" Text="Cancel" 
      CssClass="nextButton" /> 
    </div> 

代碼第二步:

protected void nextButton_Click(object sender, EventArgs e) 
    { 
     GridIndexCollection _int = this.grdPolicyCoverage.SelectedIndexes; 
     GoToNextItem(this); 
    } 

我也嘗試添加:

protected override void OnInit(EventArgs e) 
    { 

     base.OnInit(e); 
     this.PreRender += SearchResults_PreRender; 

     if (!IsPostBack) 
     { 
      this.srNextButton.Click += new EventHandler(nextButton_Click); 
     } 

    } 

我有一個BaseUserControl.cs容納控制

的加載
protected void GoToNextItem(Control control) 
    { 

     //RadPanelBar _radPanelBar = (RadPanelBar)page.Page.FindControl("RadPanelBar1"); 
     //NewAdjustment _newAdjustment = (NewAdjustment)this.Page.FindControl() 
     RadPanelBar _radPanelBar = 
      (RadPanelBar) control.Parent.Parent.Parent.Parent.Parent.FindControl("RadPanelBar1"); 

     int selectedIndex = _radPanelBar.SelectedItem.Index; 

     if (selectedIndex == 1) 
     { 
      RadPanelItem _pnlSearchResults = (RadPanelItem)_radPanelBar.FindItemByValue("SearchResults"); 
      _pnlSearchResults.Controls.Add(LoadControl("~/Controls/AdjustmentWorkFlow/SearchResults.ascx")); 

     } 
     _radPanelBar.Items[selectedIndex + 1].Selected = true; 
     _radPanelBar.Items[selectedIndex + 1].Expanded = true; 
     _radPanelBar.Items[selectedIndex + 1].Enabled = true; 
     _radPanelBar.Items[selectedIndex].Expanded = false; 


    } 

父UserControl從其下面的每個控件在RadAjaxPanel中開始,如果這有所作爲。

+0

刪除'if(!IsPostBack)'。 –

+0

沒有那個幸運 – Tim

回答

0

只是嘗試刪除代碼:

this.srNextButton.Click += new EventHandler(nextButton_Click); 

OnInit,你在上面的問題做,並把它放在Page_Load事件處理中,不檢查是否的IsPostBack。

它現在如何工作? :)

+0

那個也沒有 – Tim