1

我在 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 中。IE:

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

我试过在回发时调用 JQGrid.DataBind() ,但这没有用。

有什么想法吗?

4

1 回答 1

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

于 2011-04-22T22:42:35.843 回答