我有一个使用EditFormSettings的Telerik RadGrid:
<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
支票。我不认为这是我的问题的原因,因为我在单击我的更新按钮时明确没有这样做(通过进入调试器)。我只是觉得我提到它是有关系的。
任何人都可以想到为什么会在Repeater中出现故障?
答案 0 :(得分:1)
在工作同事的帮助下找到了问题!原来是因为我在Repeater
而不是Page_Load
绑定了Page_Init
。将其更改为Page_Init
即可解决问题。