我有一个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)
中,则编辑表单不会编辑链接 . 所以我不得不删除 IsPostBack
检查 . 我没有't think think this is the cause of my problem, as I'已经尝试在单击我的更新按钮时明确不这样做(通过进入调试器) . 我以为我会提到它,因为它是相关的 .
任何人都可以想到为什么这会在中继器中出现故障?
1 回答
在工作同事的帮助下找到了问题!原来是因为我在
Page_Load
而不是Page_Init
绑定Repeater
. 将其更改为Page_Init
已解决此问题 .