【问题标题】:Telerik RadGrid - EditForm events when RadGrid is inside RepeaterTelerik RadGrid - 当 RadGrid 位于中继器内时的 EditForm 事件
【发布时间】:2014-09-09 12:16:05
【问题描述】:

我有一个 Telerik RadGrid,它使用这样的 EditFormSettings:

<EditFormSettings EditFormType="WebUserControl" UserControlName="~/UserControls/MyUserControl.ascx" >
    <EditColumn ButtonType="ImageButton" />
</EditFormSettings>

在 MyUserControl.ascx 中,我有一个按钮,我想在单击时触发事件处理程序。我知道的两种方法如下:

  1. OnClick="btnOkay_Click"作为按钮属性,其中事件处理函数在后面的代码中
  2. 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


【解决方案1】:

在同事的帮助下发现了问题!原来是因为我将Repeater绑定到Page_Load而不是Page_Init。将其更改为 Page_Init 解决了该问题。

【讨论】:

  • Telerik 和 ASP.NET 页面生命周期可能会变得混乱。干得好。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-27
  • 2013-03-11
相关资源
最近更新 更多