jqGrid + SqlDataSource回发问题

时间:2011-04-22 21:51:15

标签: c# jquery asp.net sqldatasource jqgrid-asp.net

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

它绑定到标记文件中的SqlDataSource对象,但是我在代码隐藏中的Page_Load上设置了此SqlDataSource的SelectCommand,即:

    <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(),但是没有用。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

解决了这个问题。必须在网格的DataRequesting事件中分配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