我有一个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不刷新/更新,仍然包含完整表的数据。
有人能给出一些建议如何使这个工作吗?谢谢
发布于 2013-05-29 22:14:27
我认为问题在于PostBack和页面加载。当您的页面打开并调用Page_load方法时。然后使用默认的GridView语句刷新SELECT。您应该将刷新代码放入此代码中:
if (!Page.IsPostback)
{
// Your Code
}发布于 2013-05-29 22:15:09
不如创建第二个sql数据源,您可以在它们之间切换。我认为这是因为回发
https://stackoverflow.com/questions/16824062
复制相似问题