1

我的 Asp.NET MVC 4 应用程序中有一个 DevExpress GridView,我想通过 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 行)。

有没有人更好地解决这个问题?

4

3 回答 3

2

这是最好的方法,当然是任何方法,你可以在 C# 代码中调用,在 CustomCallback 中你可以运行它,在客户端的 javascript 中你可以执行,这样
ASPxGridView1.PerformCallback()(ASPxGridView1 有一个名为的事件CustomCallback)你没有重新加载页面可以在 C# 代码中获取 C# 代码的值:

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

当然你记得应该从客户端的java脚本调用这个事件

于 2012-12-15T07:01:16.873 回答
2

客户端GetRowValues专门为此目的而设计。

我相信这是最好的解决方案。

于 2012-12-14T19:08:45.413 回答
0

哪种方法更快?我正在加载多个值,但由于某种原因它似乎很慢。

我正在做类似于你所拥有的设置,但我有大约 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]);
}
于 2018-06-27T05:29:15.103 回答