Я использую 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;
}
Я подключаю эти методы в радгрид
<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>
EDIT:
Я отредактировал вопрос, чтобы показать код, который я использую. Мои события вызываются до событий Radgrids.
Мне нужно, чтобы события запускались в правильном порядке, поскольку мне нужно узнать, какая строка была выбрана, прежде чем определять, следует ли отменять выбор других строк.
Я получил код из этого поста на форуме telerik , и я недостаточно знаю о telerik, чтобы переписать код, который мне нужно работать в IE8 и IE7.