使用jquery bootgrid获取特定单元格的值

时间:2016-10-26 14:25:08

标签: jquery

我想使用单元格的值来调用另一个函数

我使用query.bootgrid,表格加载了我从数据库中获取的数据。

一切正常......数据搜索和排序..显示/隐藏collmn

在“第2行”中,Order_number为“SR14_2254”

<table id="orderGrid" class="table table-condensed table-hover table-striped"  >
<thead>
    <tr>
        <th data-column-id="Id" data-identifier="true" data-visible="false" data-type="numeric" data-width="40">Id</th>
        <th data-column-id="Order_number"  data-width="120" >Auftrag-Nr.</th>
        <th data-column-id="Order_date" data-width="80" >Vom</th>
        <th data-column-id="Status" data-width="60" data-align="right" >Status</th>
        <th data-column-id="Status_since" data-width="80"  >Seit</th>
        <th data-column-id="commands" data-width="200" data-formatter="commands" data-sortable="false">Commands</th>
    </tr>
</thead>
</table>        

<script>
    var orderGrid = $("#orderGrid").bootgrid({
      ajax: true,
      url: "/If/dup/orderTbl.if.dup.php",
      selection: true,
      multiSelect: true,
      ...


    $( document ).ready(function() {
      orderGrid.bootgrid();
      }
</script>

当我点击页面顶部的a按钮时,会调用函数customerBtn()。

我检查此操作只选择了一行。

效果很好,当只选择第二行时,我得到“2”,

但我没有得到单元格“Order_number”的价值..

总是未定义..

function customerBtn(){
    var rowSelected =$("#orderGrid").bootgrid("getSelectedRows");
        if(rowSelected.length != 1 ){
            alert("sel=" + rowSelected +  "  elements=" + rowSelected.length);  
        }else{
            celValue = $("#orderGrid").data($("#orderGrid").bootgrid("getSelectedRows"));
            console.log(celValue['Order_number'] );
            loadClient(celValue['Order_number']);
        }
    };                              

有人有想法吗?

1 个答案:

答案 0 :(得分:1)

好的,我解决了这个问题。

实际上有2个错误。第一个是那个

$("#orderGrid").bootgrid("getSelectedRows");

返回与data-column-id =&#34; Id&#34;相关联的id。字段,而不是行。

var tblData = $("#orderGrid").bootgrid("getCurrentRows");

逐行返回数组。然后我只需要以下代码来扫描数据:

for(var i=0; i < tblData.length; i++){
    console.log(tblData[i]['Id'] + " => " + tblData[i]['Order_number'] );
    if(tblData[i]['Id'] == rowSelected){
        loadClient(tblData[i]['Order_number']);
        break; 
    }
}  

现在,当我选择第二行时,函数loadClient(order)显示SR14_2254。