我的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行)。
有没有人能更好地解决这个问题?
答案 0 :(得分:2)
客户端 GetRowValues 专为此目的而设计。
我相信这是最好的解决方案。
答案 1 :(得分:2)
这是最好的方法,当然无论如何,你可以在C#Code中调用,在CustomCallback中你可以运行它,在客户端你可以执行的javascript,这样的
ASPxGridView1.PerformCallback()
(ASPxGridView1有一个名为CustomCallback
的事件),你没有重载页面可以获得C#代码的值
在C#代码:
ASPxGridView1.GetRowValues(ASPxGridView1.FocusedRowIndex,"column1","column2",....)
当然你记得应该从客户端的
中的java脚本中调用此事件答案 2 :(得分: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]);
}