我在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(),但是没有用。
有什么想法吗?
答案 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