2011-08-23 134 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