【发布时间】:2012-03-15 16:30:49
【问题描述】:
我正在使用 Telerik radgrid 并连接了许多方法,如下所示。
在 firefox、chrome 和 IE9 中,事件按以下顺序触发:
RowClick
RowSelecting
RowSelected
在 IE8 和 IE7 中,事件按以下顺序触发:
RowSelecting
RowSelected
RowClick
有没有办法重新排序 IE8 和 IE7 中的事件?
var originalClickedRowState = null;
var clickedRow = null;
function rgGrid_OnRowCreating(sender, args) {}
function rgGrid_OnRowCreated(sender, args) {}
function rgGrid_OnRowClick(sender, args) {
clickedRow = args.get_gridDataItem();
originalClickedRowState = args.get_gridDataItem().get_selected();
}
function rgGrid_OnRowDeselecting(sender, args) {
if (clickedRow != null && clickedRow != args.get_gridDataItem()) {
args.set_cancel(true);
}
}
function rgGrid_OnRowSelecting(sender, args) {
if (clickedRow == args.get_gridDataItem() && originalClickedRowState) {
args.set_cancel(true);
originalClickedRowState = null;
clickedRow = null;
}
}
function rgGrid_OnRowSelected(sender, args) {
originalClickedRowState = null;
clickedRow = null;
}
我在 radgrid 中连接了这些方法
<ClientSettings >
<Selecting AllowRowSelect="True" />
<ClientEvents
OnRowCreated="rgGrid_OnRowCreated"
OnRowCreating="rgGrid_OnRowCreating"
OnRowClick="rgGrid_OnRowClick"
OnRowDeselecting="rgGrid_OnRowDeselecting"
OnRowDeselected="RowDeselected"
OnRowSelecting="rgGrid_OnRowSelecting"
OnRowSelected="rgGrid_OnRowSelected" />
<Scrolling AllowScroll="True" />
</ClientSettings>
编辑: 我已经编辑了问题以显示我正在使用的代码。我的事件在 radgrids 事件之前被调用。 我需要以正确的顺序触发事件,因为我需要在确定是否应取消选择任何其他行之前获取选择了哪一行。
我从telerik 上的这个论坛帖子中获得了代码,但我对 Telerik 的了解不够,无法重写我必须在 IE8 和 IE7 中工作的代码。
【问题讨论】:
标签: javascript internet-explorer-8 internet-explorer-7 telerik telerik-grid