asp.net 遇一问题。!求解。
现有这样一页面我若点了“编辑”,页面重新加载就又回到了“联系人”这个图层。然后还要再点击“销售记录”才能呈现销售记录的编辑状态。
求高人指点,让页面还显示重新加载前的图层。
现有这样一页面我若点了“编辑”,页面重新加载就又回到了“联系人”这个图层。然后还要再点击“销售记录”才能呈现销售记录的编辑状态。
求高人指点,让页面还显示重新加载前的图层。
答案:呵呵~~ 我记得看过一个BLOG里的文章,作者为了节省资源,把整个VIEWSTATE都给压缩了。这应该是能获得的吧? 你应该重载PreInit()和Render()这两个方法去获得 首先,楼上滴仁兄说错了。 问题其实很简单,在任何地方,例如一个事件方法中,如何像 SaveViewState 属性一样地去取得页面的完整 ViewState。 看了一下,DynamicControlsPlaceholder的那个跟你的需求没有直接关系。另外 SaveViewState 、SavePageStateToPersistenceMedium 、Render等此时都是没有被调用滴哈。这里的目的是让一步回发(Ajax)的程序可以更新ViewState,这样页面上成千上万的状态得以保存,例如当在Ajax方法中改变了DataGrid的排序之后,如果页面其它地方引起刷新,这个DataGrid应该“自己知道”在刷新的时候按照什么排序顺序。 ViewState当然是保存在服务器端,客户端仅仅输出一个编号,否则就不会敢于在后台灵活改变它——因为它根本不输出到客户端,也不改变那个客户端编号,一切改变都在后台服务器中缓存进行。 现在大多数(确切地说几乎所有)的Ajax都是“顾头不顾腚”,那些改变了内容的控件在页面回发或者其它局部控件异步回发的时候并不自知(保持)自己的状态,程序UI设计倒退了20年。我看了一下 asp.net 2.0,它其实只要把 SaveAllState 由 private 改为 protected 就能解决一切“Ajax与非Ajax控件完全用户、兼容”的问题。所以:得出结论,只能做一些妥协,如果需要Ajax,就要限制所有控件,它们任何一个都不能页面回发,这样就不需要页面级别的ViewState了哈。 我帮你编译一下,错咯不要怪我哈。 public partial class ReportTest : System.Web.UI.Page } protected override void LoadViewState(object savedState) } 如果是ajaxpro 在方法里面是有个属性才能调用viewstate的值的
如果帮助到您,请记得采纳为满意答案哈,谢谢!祝您生活愉快! vae.la你这不是多个页面吗?你把他们各个按钮的信息放在各个页面,按钮只加个超链接,这样他点编辑就不会调到其他页面了!应该在page_load函数里面添加
if(!Psotback)
{
page_load函数的内容
}
上一个:用ASP.NET(C#)设计
下一个:ASP.NET如何通过SSL传送数据