首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将ajax数据绑定到Bootgrid不显示结果

将ajax数据绑定到Bootgrid不显示结果
EN

Stack Overflow用户
提问于 2015-07-08 18:56:15
回答 1查看 1.7K关注 0票数 2

我遇到了搜索功能的问题。我正在搜索数据,而键入任何值& debug都会在下面的行上给我错误:

代码语言:javascript
复制
if (column.searchable && column.visible &&
                    column.converter.to(row[column.id]).search(searchPattern) > -1)

我的实现:

代码语言:javascript
复制
$(document).ready(function()
{
sendRESTQuery(asmx());
});
function asmx() { 
var url = window.location.protocol + "//" + window.location.host + _spPageContextInfo.siteServerRelativeUrl;  
    var asmx =  url + "/_vti_bin/listdata.svc/AD?$select=Column1,Column2,Column5,Column7,Column9";   //?$select=Column1,Column2,Column3,Column4
   
    return asmx;
}
function testBtn() {
sendRESTQuery(asmx());
}
var baseUrl = asmx();

function sendRESTQuery(baseUrl) { 
   
    $.ajax({        
        contentType: 'application/json;odata=verbose',       
        url: baseUrl,
         headers: { 
            'X-RequestDigest': $('#__REQUESTDIGEST').val(), 
            "Accept": "application/json; odata=verbose" 
        }, 
        post: function () {alert('true')},       
        complete: function (result) {                
            var response = JSON.parse(result.responseText); 
            if (response.error) {
            } 
            else { 
               bgDetails = response.d; 
                onSuccess(bgDetails.results);                 
            } 
        }         
 
    });       
}

function onSuccess(bgDetails) {
		
      $("#grid-data").bootgrid().bootgrid("append", bgDetails);  
      $("#grid-data").bootgrid("sort", { Column2 : "asc"}).bootgrid("search", $('.search-field').val());

      
      }

代码语言:javascript
复制
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.4/css/bootstrap.min.css" rel="stylesheet"/>
<link href="https://cdnjs.cloudflare.com/ajax/libs/jquery-bootgrid/1.2.0/jquery.bootgrid.min.css" rel="stylesheet"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-bootgrid/1.2.0/jquery.bootgrid.js"></script>

代码语言:javascript
复制
<table id="grid-data" class="table table-condensed table-hover table-striped" data-toggle="bootgrid" data-keep-selection="true">
<thead>
<tr>
<th data-column-id="Column1" data-type="numeric" data-identifier="true" data-visible="false" >Employee ID</th>
<th data-column-id="Column2">Full Name</th>
<th data-column-id="Column5">Department</th>
<th data-column-id="Column7" >Work Phone</th>
<th data-column-id="Column9">Email</th>
</tr>
</thead>
</table>
EN

回答 1

Stack Overflow用户

发布于 2017-02-26 17:12:25

当您使用包含可搜索列的null值的json使用append时,这是bootgrid中的一个已知错误。

您必须确保在可搜索列的任何行中都没有空值。其中一种方法是:

代码语言:javascript
复制
function onSuccess(bgDetails) {

    // iterate every row, and every property with null, and set an empty string...
    for (var i = 0; i < array.length; i++) {
        var row = array[i];
        for (var prop in row) {
            if (row.hasOwnProperty(prop) && row[prop] === null) {
                row[prop] = "";
            }
        }
    }

    $("#grid-data").bootgrid().bootgrid("append", bgDetails);  
    $("#grid-data").bootgrid("sort", { Column2 : "asc"}).bootgrid("search", $('.search-field').val());

  }

另一种选择是使用他们的ajax,而不是使用append,如下所示:

代码语言:javascript
复制
$("#grid-data").bootgrid({
    ajax: true,
    ajaxSettings: {        
        contentType: 'application/json;odata=verbose',
        headers: { 
            'X-RequestDigest': $('#__REQUESTDIGEST').val(), 
            "Accept": "application/json; odata=verbose" 
        }
    },
    url: baseUrl
});


$("#grid-data").bootgrid("sort", { Column2 : "asc"})
               .bootgrid("search", $('.search-field').val());

...but您可能需要更改服务器api响应以适应他们期望的json,如下所示(请参见their examples中的):

代码语言:javascript
复制
{
  "current": 1,
  "rowCount": 10,
  "rows": [
    {
      "id": 19,
      "sender": "123@test.de",
      "received": "2014-05-30T22:15:00"
    },
    {
      "id": 14,
      "sender": "123@test.de",
      "received": "2014-05-30T20:15:00"
    },
    ...
  ],
  "total": 1123
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31290621

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档