2011-04-22 32 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