如何在调用WebMethod后绑定GridView?

时间:2012-01-31 11:09:25

标签: c# .net webforms webmethod

目前我正在做拖拉删除GridView行,将新行顺序发送到 WebMethod ,以便根据这些新值更新数据库。

那么,如何在调用WebMethod后更新Web窗体中的GridView?考虑到我无法访问WebMethod中的任何webform元素。

网络方法:

[WebMethod]
public static void GridViewCarriersReorders(string Reorder)
{
    Boolean result;
    string[] ListID = Reorder.Split('|');
    transactions tr = new transactions();
    result = tr.updateLcrPriorities(ListID);
    //updateGridViewCarriers(); //SOMETHING LIKE THIS IS NEEDED TO DO THE BINDING
}

非常感谢你的帮助和理解。

更新:这就是我调用webmethod的方式:

$.ajax({
    type: "POST",
    url: "lcrP.aspx/GridViewCarriersReorders",
    data: '{"Reorder":"' + strorder + '"}',
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    async: true,
    cache: false,
    success: function (msg) {
        $.jGrowl("The Carriers priority was successfully updated", { theme: "succeeded" });
    }
})

1 个答案:

答案 0 :(得分:1)

如果在Gridview周围放置UpdatePanel,则只能为它调用回发:

success: function (msg) {
        $.jGrowl("The Carriers priority was successfully updated", { theme: "succeeded" });
        __doPostBack('UpdatePanel1', '');
    }

修改 正如你自己发现的那样,我错过了写在OnLoad事件中你应该强制网格的数据绑定:

void OnLoad(EventArgs e) {
    base.OnLoad(e);
    myGrid.DataBind();
}

作为替代方案,如果您的网格绑定到xDataSource控件,则可以禁用网格的视图状态,以及是否在每次回发时强制使用DataBind。