更新GridView SelectCommand

时间:2013-05-29 21:23:27

标签: c# asp.net gridview

我有一个gridView,使用源DataSourceID="SqlDataSource1"

使用表的全部内容初始化页面

testPage.aspx:

<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ 
ConnectionStrings:ConnectionString %>" 
SelectCommand="SELECT [Field1], [Field2], [Field3], [Field4] FROM [Analysis]
ORDER BY [Field1] DESC">
</asp:SqlDataSource>

(我改变了真实的字段名称!)。

这很好用,gridView填充了完整的表数据。基于另一个事件,我现在想要更改SelectCommand以使用SQL WHERE子句过滤表。我试过了

testPage.aspx.cs:

    protected void ctl04_ValueChanged(object sender, EventArgs e)
    {
        SqlDataSource1.SelectCommand = "SELECT [Field1], [Field2], 
        [Field3], [Field4] FROM [Analysis] WHERE [Field1] = 'items' ORDER BY 
        [Field1] DESC";
        gridView1.DataBind();
    }

事件触发并且似乎运行正常,但gridView1不刷新/更新,仍然包含完整表的数据。

有人能指点一下如何让这个工作吗? 感谢

2 个答案:

答案 0 :(得分:2)

我认为问题是PostBack和页面加载。打开页面并调用Page_load方法时。然后使用默认的GridView语句刷新SELECT。您应该将刷新代码放入此代码中:

if (!Page.IsPostback)
{
   // Your Code
}

答案 1 :(得分:1)

如何创建第二个sql数据源,你可以在它们之间切换。我认为这是因为回发后发生的