【发布时间】:2014-09-09 12:16:05
【问题描述】:
我有一个 Telerik RadGrid,它使用这样的 EditFormSettings:
<EditFormSettings EditFormType="WebUserControl" UserControlName="~/UserControls/MyUserControl.ascx" >
<EditColumn ButtonType="ImageButton" />
</EditFormSettings>
在 MyUserControl.ascx 中,我有一个按钮,我想在单击时触发事件处理程序。我知道的两种方法如下:
-
OnClick="btnOkay_Click"作为按钮属性,其中事件处理函数在后面的代码中 -
CommandName="Update"作为按钮属性,由传递给 RadGrid 的 OnUpdateCommand 属性的事件处理程序处理
这两种方法都有效。但是我的问题是,当 RadGrid 位于 Repeater ASP.NET 控件内的用户控件内时,它们会停止工作。在这种情况下,按钮事件处理程序不会被触发(在上述任何一种方法中)。
我注意到当我绑定中继器时:
rpt.DataSource = Data
rpt.DataBind()
如果我将其包装在if(!Page.IsPostBack) 中,那么当我单击 RadGrid 行的编辑链接时,编辑表单根本不会出现。所以我不得不删除IsPostBack 检查。我不认为这是我的问题的原因,因为我在单击更新按钮时明确尝试不这样做(通过闯入调试器)。我只是想我会提到它,以防它是相关的。
谁能想到这会在中继器中中断的原因?
【问题讨论】:
-
为您自己加载的所有用户控件添加 ID,确保 ViewState 未被禁用。我没有别的了:)
标签: asp.net .net telerik repeater radgrid