收录日期:2018/05/25 16:58:07 时间:2016/05/20 18:28:12 标签:ASP.NET
master/detail页面,master页面中的Datagrid中有一连接至Detail页面,当从Detail页面操作后返回到Master页面,Master页面怎样保持以前状态.如它的搜索文本,页次等等,不能用history.back(),Detail操作后需刷新Master页面,解决后马上结贴.
帮你up
你要刷新Master页面,那么就保存不了以前的信息了,你还是操作后就重新查寻一下好了
需要保存原查询条件
刷新后就保存不住以前的信息了,重新查询。
需要保存原查询条件

还有页次,滚动条位置等
可以保存到SESSION,也可以用变量传递。
谢谢各位了,难道没其它方法了吗?那你们是怎样做的啊!这是很常用的功能啊!帮忙啊
能不能给点具体的代码,谢谢了!很急啊!分不给可以再加啊!
asp.net的每一个服务器控件都有一个enableviewstates属性把它设为true,返回页面它会保持原有输入
我这个不是在同一页啊!从另一个页面返回本页,用Enableviewstates属性没用啊
从detail到master页面的语句中加 一句
   Response.Redirect("master.aspx?backde=" + Request.UrlReferrer.ToString());
在master返回detail的事件中写入
   Response.Redirect(Request.QueryString["backde"]);
TO Oceanson(洋之光)
  先谢谢了,我现在用的就是这种方法,可是返回后不能保存Search文本框的数据,还有Grid中的页次等啊!还有办法吗?
办法是有的 就是在url重定位的时候再加两个参数,一个保存文本框数据,一个保存Grid页数
 在detail的Pagelode中加一个判断  看是否是master返回的  你可以判断返回的参数是否为null来确定 如果是重master返回的 就给对应的textbox赋值  和根据页数设定Datagrid的currentpageindex 重新帮定Datagrid
你就不能在新窗口中打开Detail吗,干啥非要在一个窗口内呢。

或者做一个框架,上面显示Master,下面显示Detail。
Oceanson(洋之光)

  在Datagrid中的超连接字段,我要怎样把DataGrid的当前页值和搜索文本框的值传过去啊!
啊 还没弄好呀     有很多方法可以在网页之间传递数据   使用带参数的重定向是一个比较传统的方法     具体如下
detail到master页面的语句
Response.Redirect("master.aspx?backde=" + Request.UrlReferrer.ToString() 
+ "&Text=" + TextBox_seach.text + "&DIndex=" + DataGrid1.SelectItemIndex.ToString());

master返回detail的事件中写入
Response.Redirect(Request.QueryString["backde"] + "&Text=" + Request.QueryString["Text"] + "&DIndex=" + Request.QueryString["DIndex"]);

在detail的pagelode的事件中判断
if (Request.QueryString["Text"] == null)
{
   //做你原来的pagelode事件
}
else
{
TextBox_seach.text = Request.QueryString["Text"];
BindGrid();//你的绑定datagrid的函数过程
DataGrid1.CurrentPageIndex = Request.QueryString["DIndex"];
BindGrid();//和翻页一样需要重新帮定
//做你原来的pagelode事件
}

其他传递和保存参数的方法还有session、cookie等 网上有很多资源的:)
To:Oceanson(洋之光)

  谢谢你耐心的指教,我现在试试,我也试了用Session等保存参数,但我的程序不止一个页面带搜索功能,如果用Session,当用户到另一页面时,本来搜索里面是没有的,也变成有了,因为我每个页面都是相同的标签啊!如TXTSearch,如果你的方法可行,我一定马上给加分.
To:Oceanson(洋之光)
  对了,我是在Datagrid中的超连接传参数,按你的方法不行啊!DataNavigateUrlFormatString="DG_view.aspx?No={0}后面怎样加你的参数啊!帮帮我
有点不明白你的意思了   你是想一页 一页 又 一页的返回 每一页都保存原来的状态吗?
程序是人编的 虽然感觉不太值得在这上面花很多代码和精力 session和application都是
可序列化object对象。你可以用数组 也可以用哈系表   记录你从开始进入到退出所有的
页面信息  通过标页面标号 在表中查找你要的那一页信息 读入页面   具体是比较烦琐的
很抱歉 我有新的任务了 没时间帮你写一遍  
》》》》DataNavigateUrlFormatString="DG_view.aspx?No={0}后面怎样加你的参数
序列占位符{0}我没在传送时用过   用变量可以传  想我上面的写法一样  两个以上参数
之间用&
你可以使用Session传值,在返回master页的时候,付值给搜索文本框,再清除Session的值,就可以啦!页次也一样啊!试试吧!