【发布时间】:2013-08-10 09:04:11
【问题描述】:
我有一个与SqlDataSource 关联的GridView。
当我单击Button 时,我会更改SelectCommand,然后我使用DataBind 来更新GridView。
在 PostBack 之后,我希望保留最新的数据,我不希望 GridView 被原始 SelectCommand 加载。
我知道这是由名为 ViewState 的东西完成的,但我没有设法以正确的方式实现它。
我在 Grid 本身上尝试了 EnableViewState="true" 和 EnableViewState="false",但没有成功。
代码
<asp:GridView ID="GridView1" ...... DataSourceID="UsersSource" >
<asp:SqlDataSource ID="UsersSource" ... SelectCommand="SELECT * FROM USERS"></asp:SqlDataSource>
在启动时,GridView 填充了SELECT * FROM USERS 的结果。
现在我点击Button,它执行以下操作:
UsersSource.SelectCommand = "SELECT * FROM USERS WHERE user_id = 1";
GridView1.DataBind();
GridView 被新数据填充。
现在假设,我点击一个表头对这个表进行排序,会有一个回发,之后这个表中的数据会包含第一次查询的结果。
这里需要做什么?
更多信息
声明:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Admin.aspx.cs" Inherits="Admin" %>
页面加载方法中没有任何内容。
【问题讨论】:
-
你能显示你的 包含gridview的页面的声明吗?您的 Page_Load 事件中还有代码吗?
-
@FlopScientist 请检查更新。
标签: c# asp.net gridview postback viewstate