数据绑定后,telerik radgrid的客户端绑定未更新

Mat*_*att 3 c# asp.net data-binding telerik telerik-grid

我正在尝试使用客户端api绑定radgrid.

我发出一个调用javascript函数DoUpdate(sbiId)

function DoUpdate(sbiId) {
    var input = '{"SbiId":"' + sbiId+ '"}';
    var dataSource;

    $.ajax({ url: "http://localhost/Meta.WebService/DataService.svc/GetData",
        type: "POST",
        contentType: "application/json; charset=utf-8",
        data: input,
        dataType: "json",
        success: function(data) {
            updateGrid(data);
        }
    });
}

function updateGrid(result) {
    var mtv = RadGridSprintBackLogItemDetailsInstance().get_masterTableView();
    mtv.set_dataSource(result);
    mtv.dataBind();
}
Run Code Online (Sandbox Code Playgroud)

ajax调用返回看似正确的JSON数据; 这是每个提琴手的回复内容:

{"d":[{"_ type":"SBIRevision:#Meta.Scrum","AssignedTo":"Roger Ng","ChangedBy":"Bob Hung","ChangedDate":"8/8/2011 3 :48:31 PM",""描述":"","状态":"未完成","标题":"MARS单元测试","WorkEstimate":"50","WorkRemaining":"50"}, {" _ type":"SBIRevision:#Meta.Scrum","AssignedTo":"Roger Ng","ChangedBy":"Roger Ng","ChangedDate":"8/8/2011 5:12:46 PM", "描述":"","状态":"进行中","标题":"MARS单元测试","WorkEstimate":"50","WorkRemaining":"50"},{"_ type":" SBIRevision:#Meta.Scrum","AssignedTo":"Roger Ng","ChangedBy":"Roger Ng","ChangedDate":"8/8/2011 5:13:39 PM","描述":"" ,"州":"进行中","标题":"MARS单元测试","WorkEstimate":"50","WorkRemaining":"50"},{ "_ type":"SBIRevision:#Meta.Scrum" ,"AssignedTo":"Roger Ng","ChangedBy":"Roger Ng","ChangedDate":"8/8/2011 5:14:25 PM","描述":"跑进......指向错误的构建服务","状态":"进行中","标题":"MARS单元测试","WorkEstimate":"50","WorkRemaining":"50"},{"_ type":"SBIRevision: #Meta.Scrum "" AssignedTo ":"Roger Ng","ChangedBy":"Bob Hung","ChangedDate":"8/10/2011 10:59:09 AM","描述":"进入......指向错误的构建服务","State":"正在进行中","标题":"MARS单元测试","WorkEstimate":"50","WorkRemaining":"50"},{ "_ type":"SBIRevision:#Meta.Scrum ","AssignedTo":"Roger Ng","ChangedBy":"Roger Ng","ChangedDate":"8/11/2011 12:04:09 PM","描述":"跑进......指向错误的构建服务","状态":"完成","标题":"MARS单元测试","WorkEstimate":"50","WorkRemaining":"50"}]}

这是我在aspx页面上声明我的radgrid的方法

<telerik:RadGrid runat="server" ID="RadGridSprintBackLogItemDetails" EnableViewState="false" EnableEmbeddedSkins="false" Skin="Meta">
    <MasterTableView AutoGenerateColumns="false" EnableNoRecordsTemplate="true" ShowHeadersWhenNoRecords="true">
        <ItemStyle Wrap="false"></ItemStyle>
        <NoRecordsTemplate>
            <div style="margin-left: 5px;">
                Select a Sprint Backlog Item (SBI) from above to view its Revisions</div>
        </NoRecordsTemplate>
        <Columns>
            <telerik:GridBoundColumn DataField="ChangedDate" HeaderText="Changed Date">
            </telerik:GridBoundColumn>
            <telerik:GridBoundColumn DataField="Title" HeaderText="Title">
            </telerik:GridBoundColumn>
            <telerik:GridBoundColumn DataField="Description" HeaderText="Description">
            <ItemStyle Wrap="false"></ItemStyle>
            </telerik:GridBoundColumn>
            <telerik:GridBoundColumn DataField="AssignedTo" HeaderText="Assigned To">
            </telerik:GridBoundColumn>
            <telerik:GridBoundColumn DataField="WorkEstimate" HeaderText="Work Estimate">
            </telerik:GridBoundColumn>
            <telerik:GridBoundColumn DataField="WorkRemaining" HeaderText="Work Remaining">
            </telerik:GridBoundColumn>
            <telerik:GridBoundColumn DataField="State" HeaderText="State">
            </telerik:GridBoundColumn>
            <telerik:GridBoundColumn DataField="ChangedBy" HeaderText="Changed By">
            </telerik:GridBoundColumn>
        </Columns>
    </MasterTableView>
</telerik:RadGrid>
Run Code Online (Sandbox Code Playgroud)

奇怪的是,在返回并绑定数据后,将显示无记录模板.

Han*_*ans 5

更改updateGrid函数如下(使用result.d进行绑定):

function updateGrid(result) {
  var mtv = RadGridSprintBackLogItemDetailsInstance().get_masterTableView();
  mtv.set_dataSource(result.d);
  mtv.dataBind(); 
}
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助.