IE8和IE7中以错误顺序触发的javascript事件(Telerik radgrid)
我正在使用telerik radgrid,并且已经连接了许多方法,如您在下面看到的 在firefox、chrome和IE9中,事件按以下顺序触发:IE8和IE7中以错误顺序触发的javascript事件(Telerik radgrid),javascript,internet-explorer-8,internet-explorer-7,telerik,telerik-grid,Javascript,Internet Explorer 8,Internet Explorer 7,Telerik,Telerik Grid,我正在使用telerik radgrid,并且已经连接了许多方法,如您在下面看到的 在firefox、chrome和IE9中,事件按以下顺序触发: RowClick RowSelecting RowSelected RowSelecting RowSelected RowClick 在IE8和IE7中,事件按以下顺序触发: RowClick RowSelecting RowSelected RowSelecting RowSelected RowClick 有没有办法在IE8和IE7中对
RowClick
RowSelecting
RowSelected
RowSelecting
RowSelected
RowClick
在IE8和IE7中,事件按以下顺序触发:
RowClick
RowSelecting
RowSelected
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了解不够,无法重写我必须在IE8和IE7中工作的代码。在应用程序中不应依赖事件顺序
看看这个:您的答案就最佳实践而言是正确的,但它并不能解决问题。