jqGrid + SqlDataSource Post Back Problem

本文关键字:Back Problem Post SqlDataSource jqGrid | 更新日期: 2023-09-27 17:53:00

我在asp.net页面中使用jqGrid。

它在标记文件中绑定到一个SqlDataSource对象,但是我在代码后面将这个SqlDataSource的SelectCommand设置为Page_Load,即:

    <asp:SqlDataSource runat="server" ID="SqlDataSource1"  
    ConnectionString="<%$ ConnectionStrings:FooDatabase %>" > 
    </asp:SqlDataSource>     
    <cc1:JQGrid runat="server" ID="JQGrid1" DataSourceID="SqlDataSource1"  
        Width="600px" Height="462px" onsearch="JQGrid1_Searching" 
        PagerSettings-PageSize="20" > 

    protected void Page_Load(object sender, EventArgs e)
    {
        SqlDataSource1.SelectCommand =
            "SELECT [Foo] From [FooTable]", 
    }

但是当我在按钮单击事件中分配相同的SelectCommand时,没有数据加载到jqGrid中。即:

    protected void btn_Submit_Click(object sender, EventArgs e)
    {
        SqlDataSource1.SelectCommand =
            "SELECT [Foo] FROM [FooTable]"
    } 

我试过在回发时调用JQGrid.DataBind(),但那不起作用。

任何想法吗?

jqGrid + SqlDataSource Post Back Problem

解决了。必须在网格的datarequest事件中分配sql命令,

    protected void JqGrid_Requesting(object sender, Trirand.Web.UI.WebControls.JQGridDataRequestEventArgs e)
    { 
        if (Session["Cmd"] != null)
        {
            SqlDataSource1.SelectCommand = Session["Cmd"] as string; 
        }
    }

参见以下链接:http://www.trirand.net/forum/default.aspx?g=posts&t=23