2011-04-22 33 views
1

我在asp.net页面中使用jqGrid。jqGrid + SqlDataSource发布返回问题

它绑定到标记文件将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(),但没有奏效。

有什么想法?

+0

可能是你使用的jqGrid的商业版本(从http://www.trirand.net/)?那么你应该使用'jqgrid-asp.net'标签代替'jqgrid',因为你的问题似乎是纯粹的后端问题。 – Oleg 2011-04-22 22:00:42

+0

好了。从三位一体来说,是的。我正在使用免费版本。 – 2011-04-22 22:03:20

+0

如果需要,您可以同时使用这两个标签。 'jqgrid'的问题主要是关于jqGrid解决方案的客户端JavaScript部分。我写了关于标签的建议,只有那些能够回答你的问题的人才会阅读它。 – Oleg 2011-04-22 22:09:11

回答

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