1

我有一个gridView,它使用源表的全部内容初始化页面DataSourceID="SqlDataSource1"

测试页.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 以使用 SQLWHERE子句过滤表。我试过了

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 不刷新/更新并且仍然包含整个表的数据。

任何人都可以给出一些指示如何让它工作吗?谢谢

4

2 回答 2

2

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

if (!Page.IsPostback)
{
   // Your Code
}
于 2013-05-29T22:14:27.390 回答
1

创建第二个 sql 数据源怎么样,你可以在它们之间切换。我认为这是因为回发

于 2013-05-29T22:15:09.103 回答