события JavaScript, сгенерированные в неправильном порядке в IE8 и IE7 (Telerik radgrid) - PullRequest
0 голосов
/ 15 марта 2012

Я использую 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.

1 Ответ

2 голосов
/ 15 марта 2012

Вы не должны полагаться на порядок событий в своих приложениях.

Посмотрите на это: http://www.quirksmode.org/js/events_order.html

...