在网上看了很多,也不明白,不知道在什么时候禁用,不要跟我说页面回发的时候可以禁用掉,
都不明白什么叫页面回发,
还有人说GridView不能禁用viewstate ,我禁用了之后发现编辑,分页都可以用啊。
怎么判断页面回发??不要个你我解释什么是viewstate,我知道它是维护了控件的UI的状态。
都不明白什么叫页面回发,
还有人说GridView不能禁用viewstate ,我禁用了之后发现编辑,分页都可以用啊。
怎么判断页面回发??不要个你我解释什么是viewstate,我知道它是维护了控件的UI的状态。
解决方案 »
- 缓存和反射的问题
- 用SQL怎么取符号后的数据
- 关于点击右键生成菜单问题。
- RSS采用google力推的ATOM会不会被其他搜索引擎拒绝?
- 用过DataAccess Application Block的请进
- Page_Init和Page_Load有什么区别???
- 关于format的问题
- 求助,尊敬的程序员们,如何把别人回复的(有一定格式)内容保存到数据库中并且从新调出来时不变(在ASP.NET程序中)
- IIS和SP4的问题
- 怎样捕获Datagrid中的空值? 急 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- .net C# 表单提交
- 如何换IP 1.1.1.1换成1.1.1.*
话说,禁用viewstate后还能用gridview内置的编辑功能?那gridview怎样得到编辑以前的值?
DataSourceID="ObjectDataSource1" EnableViewState="False" OnDataBound="GridView1_DataBound" OnRowDataBound="GridView1_RowDataBound">
<Columns>
<asp:CommandField ShowDeleteButton="True" ShowEditButton="True" ShowSelectButton="True" />
<asp:BoundField DataField="ClassId" HeaderText="ClassId" SortExpression="ClassId" />
<asp:TemplateField HeaderText="ImageName" SortExpression="ImageName">
<EditItemTemplate>
<asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("ImageName") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Bind("ImageName") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="JiShuPage" HeaderText="JiShuPage" SortExpression="JiShuPage" />
<asp:BoundField DataField="ClassMark" HeaderText="ClassMark" SortExpression="ClassMark" />
<asp:BoundField DataField="Liu1" HeaderText="Liu1" SortExpression="Liu1" />
<asp:BoundField DataField="Id" HeaderText="Id" SortExpression="Id" />
<asp:BoundField DataField="GuiChengPage" HeaderText="GuiChengPage" SortExpression="GuiChengPage" />
<asp:BoundField DataField="Liu2" HeaderText="Liu2" SortExpression="Liu2" />
<asp:BoundField DataField="IndexPage" HeaderText="IndexPage" SortExpression="IndexPage" />
<asp:BoundField DataField="ProductPage" HeaderText="ProductPage" SortExpression="ProductPage" />
</Columns>
</asp:GridView>
<asp:ObjectDataSource ID="ObjectDataSource1" runat="server" DataObjectTypeName="TST.Model.TestFrom"
DeleteMethod="Delete" InsertMethod="Insert" SelectMethod="SelectAll" TypeName="TST.Bll.TestFromManager"
UpdateMethod="Update"></asp:ObjectDataSource>
自己看代码,我的数据源是一个对象,没在CS页面写一句话代码,编辑能够正常的编辑,我也想知道那gridview怎样得到编辑以前的值?
你说禁用了viewstate 还能用GridView,显然是不行的。
asp.net网站运行效率完全被这个东西搞死了,只建议在后台用下加快开发而已,牺牲性能了
viewstate 是很影响网速,所以能禁用的都应该禁用掉。
value="/" />
ViewState在客户端的保存形式,保存在一个ID为__VIEWSTATE的Hidden中,它的Value是使用Base64编码后的字符串。这个字符串实际上是一个对象序列化之后的结果。这个对象保存了整个页面的控件树的ViewState。可以使用一些工具将这个字符串进行解码查看其内容,比如ViewStateDecoder,ViewStateAnalyzer。
Page对客户端请求进行处理,在处理的过程中先是将客户端提交的_VIEWSTATE反序列化为对象,调用Control的相关方法给所有的控件装载数据,这些数据是上次请求结束后控件的状态数据。在请求结束之前调用Control的相关方法得到所有控件的被修改过的状态数据,之后Page将其进行序列化,并返回给客户端。在Control中又具体调用StateBag类的方法完成状态数据的加载和保存。
很精彩!
{
this.DropDownList1.Items.Add(new ListItem("Init", "Init"));
}
protected void Page_Load(object sender, EventArgs e)
{
this.DropDownList1.Items.Add(new ListItem("Load", "Load"));
}
大家看看这个,能预知一下执行的结果吗?放一个BUTTON上面去,看下刷新后和回传后有什么不同,,为什么
Page_Init被执行了二次,但显示结果却是一个Init?是不是trackviewstate事件在Page_Init后执行了,
并没有跟踪Page_Init的变化??高人指导,还是viewstate的问题,,,