Доступ к данным строки через клиентский API GridView

У меня есть DevExpress GridView в моем приложении Asp.NET MVC 4, и я хочу получить доступ к данным строки на стороне клиента через JavaScript. На данный момент я делаю следующее:

Укажите, какие значения должны передаваться в js-функцию ChangeDetailsTab:

function OnGridFocusedRowChanged(s, e) {
        s.GetRowValues(s.GetFocusedRowIndex(),
            'MOL_REGID;BATCH_NAME;MOL_NAME;MOL_ENTERED_BY;', ChangeDetailsTab);
}

Доступ к значениям из массива, полученного ChangeDetailsTab:

function ChangeDetailsTab(rowData) {

    var molRegId= rowData[0];
    var batchName= rowData[1];
    var molName= rowData[2];
    var molEnteredBy= rowData[3];
}

Такой подход затрудняет доступ к большому количеству значений или добавление/удаление значений позже, поскольку имена столбцов должны быть указаны в одной большой строке (см. пример 1, строка 3).

Есть ли у кого-нибудь лучшее решение этой проблемы?


person Sg1team    schedule 14.12.2012    source источник
comment
Почему бы вам не связаться с парнями из DX напрямую?   -  person Mikhail    schedule 14.12.2012
comment
Решил дать вам, ребята, попробовать на выходных ;-)   -  person Sg1team    schedule 15.12.2012


Ответы (3)


Клиентский метод GetRowValues специально разработан для этой цели.

Я считаю, что это лучшее решение.

person Mikhail    schedule 14.12.2012

это лучший способ, конечно, любой способ для этого, вы можете вызвать в коде C #, в CustomCallback вы можете запустить его, на стороне клиента на javascript, который вы можете выполнить, такой
ASPxGridView1.PerformCallback() (ASPxGridView1 имеет событие с именем CustomCallback ) с этим вы без перезагрузки страницы можете получить значение кода С# в коде С#:

ASPxGridView1.GetRowValues(ASPxGridView1.FocusedRowIndex,"column1","column2",....)

конечно, вы помните, что это событие должно вызываться из java-скрипта на стороне клиента

person Chakavak Behzad    schedule 15.12.2012

Какой метод быстрее? Я загружаю несколько значений, но по какой-то причине это кажется медленным.

Я делаю настройку, аналогичную вашей, но у меня загружается около 25-30 значений.

function insuranceselectionchange() {
   insuranceselection.GetRowValues(insuranceselection.GetFocusedRowIndex(), 'CarrierName;CarrierAddress;CarrierAddress2')
}

function SetInsuranceValues(values) {
   CarrierName.SetText(values[0]);
   CarrierAddress.SetText(values[1]);
   CarrierAddress2.SetText(values[2]);
}
person Jamaurice Holt    schedule 27.06.2018