我有一个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不刷新/更新,仍然包含完整表的数据。
有人能指点一下如何让这个工作吗? 感谢
答案 0 :(得分:2)
我认为问题是PostBack
和页面加载。打开页面并调用Page_load方法时。然后使用默认的GridView
语句刷新SELECT
。您应该将刷新代码放入此代码中:
if (!Page.IsPostback)
{
// Your Code
}
答案 1 :(得分:1)
如何创建第二个sql数据源,你可以在它们之间切换。我认为这是因为回发后发生的