Jqgrid 将colName与colModel';谁的目标?

Jqgrid 将colName与colModel';谁的目标?,jqgrid,Jqgrid,我编写JQuery是为了在ColumnChooser弹出对话框中获取列的文本,以便获取colModel的名称(或索引),然后我了解到它不是这样工作的,我必须以某种方式对colModel使用colName 问题 colNames: [ 'Id', 'Stock Number', 'VIN', 'Year' ], colModel: [ { name: 'Id', index: 'Id' }, { name: 'StockNumber', index: 'StockNumber'

我编写JQuery是为了在ColumnChooser弹出对话框中获取列的文本,以便获取colModel的名称(或索引),然后我了解到它不是这样工作的,我必须以某种方式对colModel使用colName

问题

colNames: [ 'Id', 'Stock Number', 'VIN', 'Year' ],
colModel: [ 
    { name: 'Id', index: 'Id' },
    { name: 'StockNumber', index: 'StockNumber' }, 
    { name: 'VIN', index: 'VIN' }, 
    { name: 'Year', index: 'Year' }
如您所见,我的问题是,在对$JQGridColumnModel设置使用$ColumnChooserSelectedList时,“StockNumber”与“StockNumber”不同。此外,我无法判断列的顺序是否正确(在colName和colModel之间),因为我不知道它在幕后是如何工作的

 var $ColumnChooserSelectedList = $("#colchooser_test ul.selected li");
 var $ColumnModelSetting = $("#test").jqGrid('getGridParam', 'colModel');
 var returnValue = "";

 $.each($ColumnChooserSelectedList, function (i,o) {
    if (o.title.length > 0) {
       if (returnValue.length > 0) { returnValue += "|"; }
       returnValue += o.title;   //This o.title need to be changed to match colModel's Name (or Index)...
    }
 });
谢谢


更新-找到解决方案

提出了这个很好的解决方案,但我不能确定它是否100%的时间都有效

 var $ColumnChooserSelectedList = $("#colchooser_test ul.selected li");
 var $ColumnModelSetting = $("#test").jqGrid('getGridParam', 'colModel');
 var $ColumnNameSetting = $("#test").jqGrid('getGridParam', 'colNames');
 var returnValue = "";

 $.each($ColumnChooserSelectedList, function (i1,o1) {
    if (o1.title.length > 0) {
       $.each($ColumnNameSetting, function (i2, o2) {
         if ($ColumnNameSetting[i2] == o1.title) {
            if (returnValue.length > 0) { returnValue += "|"; }
            returnValue += $ColumnModelSetting[i2].name;   
            return false;  //This break the foreach loop...
         }
       });     
    }
 });
 var $ColumnChooserSelectedList = $("#colchooser_test ul.selected li");
 var $ColumnModelSetting = $("#test").jqGrid('getGridParam', 'colModel');
 var $ColumnNameSetting = $("#test").jqGrid('getGridParam', 'colNames');
 var returnValue = "";

 $.each($ColumnChooserSelectedList, function (i1,o1) {
    if (o1.title.length > 0) {
       $.each($ColumnNameSetting, function (i2, o2) {
         if ($ColumnNameSetting[i2] == o1.title) {
            if (returnValue.length > 0) { returnValue += "|"; }
            returnValue += $ColumnModelSetting[i2].name;   
            return false;  //This break the foreach loop...
         }
       });     
    }
 });

更新-找到解决方案

提出了这个很好的解决方案,但我不能确定它是否100%的时间都有效

 var $ColumnChooserSelectedList = $("#colchooser_test ul.selected li");
 var $ColumnModelSetting = $("#test").jqGrid('getGridParam', 'colModel');
 var $ColumnNameSetting = $("#test").jqGrid('getGridParam', 'colNames');
 var returnValue = "";

 $.each($ColumnChooserSelectedList, function (i1,o1) {
    if (o1.title.length > 0) {
       $.each($ColumnNameSetting, function (i2, o2) {
         if ($ColumnNameSetting[i2] == o1.title) {
            if (returnValue.length > 0) { returnValue += "|"; }
            returnValue += $ColumnModelSetting[i2].name;   
            return false;  //This break the foreach loop...
         }
       });     
    }
 });
 var $ColumnChooserSelectedList = $("#colchooser_test ul.selected li");
 var $ColumnModelSetting = $("#test").jqGrid('getGridParam', 'colModel');
 var $ColumnNameSetting = $("#test").jqGrid('getGridParam', 'colNames');
 var returnValue = "";

 $.each($ColumnChooserSelectedList, function (i1,o1) {
    if (o1.title.length > 0) {
       $.each($ColumnNameSetting, function (i2, o2) {
         if ($ColumnNameSetting[i2] == o1.title) {
            if (returnValue.length > 0) { returnValue += "|"; }
            returnValue += $ColumnModelSetting[i2].name;   
            return false;  //This break the foreach loop...
         }
       });     
    }
 });

请参见上面我提出的解决方案的编辑。希望它能100%的工作。