Radgrid通过Javascript激活RowClick事件或只使用EnablePostbackOnRowClick

时间:2013-05-14 13:58:42

标签: javascript asp.net telerik radgrid

值得讨论

从具有以下场景的telerik radgrid触发RowClick事件的pro / Con是什么,它们都可以正常工作; - )

情景1:

radgrid控件

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

背后的代码

protected void RG_SelectedIndexChanged(){}

情景2:

radgrid控件

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

背后的代码

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

场景3:

radgrid控件

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")
{
}
}

1 个答案:

答案 0 :(得分:1)

场景1& 2:

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

基本上,如果您想在调用 SelectedIndexChanged 事件之前执行某些操作,则需要在 ItemCommand 事件中执行该任务。

场景3:

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

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

如果您不需要客户端功能,只需使用更简洁,更易维护的方案1或2。