[英]RadGrid ItemCommand Doesn't Fire When Added In Code-Behind
我在ASP.NET網站中使用Telerik RadGrid,並且需要以編程方式從頁面的PreRender事件添加ItemCommand事件處理程序:
MyGrid.ItemCommand += new GridCommandEventHandler(OnItemCommand);
但是,永遠不會調用OnItemCommand
。 如果我將其放在.aspx文件中,則可以正常工作: OnItemCommand="OnItemCommand"
,但是當我在C#中添加它時卻不能。
這里發生了什么? TYIA。
創建網格時(在Page_Load或Page_Init中)添加處理程序: http : //www.telerik.com/help/aspnet-ajax/grid-programmatic-creation.html 。 或者,僅在標記中。 如果您只需要在特定條件下觸發它,則可以將該條件添加到處理程序本身中並退出。
編輯:嘗試使用以下代碼作為基礎,因為它對我來說效果很好:
<telerik:RadGrid ID="RadGrid1" runat="server" OnNeedDataSource="RadGrid1_NeedDataSource">
<MasterTableView>
<Columns>
<telerik:GridEditCommandColumn></telerik:GridEditCommandColumn>
</Columns>
</MasterTableView>
</telerik:RadGrid>
和服務器端:
protected void Page_Load(object sender, EventArgs e)
{
RadGrid1.ItemCommand += RadGrid1_ItemCommand;
}
protected void RadGrid1_ItemCommand(object sender, GridCommandEventArgs e)
{
throw new NotImplementedException();
}
protected DataTable GetData()
{
DataTable tbl = new DataTable();
tbl.Columns.Add(new DataColumn("Description"));
tbl.Columns.Add(new DataColumn("ParameterName"));
tbl.Columns.Add(new DataColumn("ThirdColumn"));
tbl.Columns.Add(new DataColumn("FourthColumn"));
tbl.Rows.Add(new object[] { "firstRecord1", "firstRecord2", "firstRecord3", "firstRecord4" });
tbl.Rows.Add(new object[] { "secondRecord1", "secondRecord2", "secondRecord3", "secondRecord4" });
tbl.Rows.Add(new object[] { "thirdRecord1", "thirdRecord2", "thirdRecord3", "thirdRecord4" });
tbl.Rows.Add(new object[] { "fourthRecord1", "fourthRecord2", "fourthRecord3", "fourthRecord4" });
return tbl;
}
protected void RadGrid1_NeedDataSource(object sender, GridNeedDataSourceEventArgs e)
{
RadGrid1.DataSource=GetData();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.