2

值得讨论

从具有以下场景的 Telerik radgrid 触发 RowClick 事件的专家/缺点是什么,它们都可以工作;-)

场景一:

拉德格

OnSelectedIndexChanged="RG_SelectedIndexChanged"
ClientSettings.EnablePostBackOnRowClick="true"

背后的代码

protected void RG_SelectedIndexChanged(){}

场景二:

拉德格

OnItemCommand="RG_ItemCommand"
ClientSettings.EnablePostBackOnRowClick="true"

代码背后

Protected void RG_ItemCommand()
{
 if(e.commandname == "RowClick")
{
}
}

场景 3:

拉德格

OnItemCommand="RG_ItemCommand"
ClientSettings.ClientEvents.OnRowClick="RG_RowClick"

Javascript

function RG_RowClick(sender, eventArgs) {
var index = eventArgs.get_itemIndexHierarchical();
sender.get_masterTableView().fireCommand("RowClick", index);
}

在后面

Protected void RG_ItemCommand()
{
 if(e.commandname == "RowClick")
{
}
}
4

1 回答 1

1

方案 1 和 2:

RadGrid中的所有事件首先触发ItemCommand。然后将该事件冒泡到特定事件,例如SelectedIndexChangedInsertCommandUpdateCommand

基本上,如果您想在调用SelectedIndexChanged事件之前做某事,您想在ItemCommand事件中执行该任务。

场景 3:

场景 3 只是从客户端调用服务器端ItemCommand事件。

它与场景 2 基本相同,除非您想在服务器端调用ItemCommand之前执行任何客户端任务。例如,“您确定要...?”

如果您不需要客户端功能,只需简单地使用场景 1 或 2,它们更清洁、更易于维护。

于 2013-05-14T17:30:31.677 回答