Button Click Event Not Firing
问题描述:
需要一些帮助。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中开始,如果这有所作为。
答
只是尝试删除代码:
this.srNextButton.Click += new EventHandler(nextButton_Click);
从OnInit
,你在上面的问题做,并把它放在Page_Load
事件处理中,不检查是否的IsPostBack。
它现在如何工作? :)
+0
那个也没有 – Tim
删除'if(!IsPostBack)'。 –
没有那个幸运 – Tim