惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

量子位
S
Securelist
MyScale Blog
MyScale Blog
Jina AI
Jina AI
罗磊的独立博客
The Cloudflare Blog
美团技术团队
博客园 - 叶小钗
阮一峰的网络日志
阮一峰的网络日志
博客园 - 三生石上(FineUI控件)
月光博客
月光博客
雷峰网
雷峰网
小众软件
小众软件
aimingoo的专栏
aimingoo的专栏
大猫的无限游戏
大猫的无限游戏
博客园 - Franky
博客园 - 聂微东
Y
Y Combinator Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
MongoDB | Blog
MongoDB | Blog
T
Tailwind CSS Blog
Attack and Defense Labs
Attack and Defense Labs
博客园_首页
Latest news
Latest news
Apple Machine Learning Research
Apple Machine Learning Research
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
The Hacker News
The Hacker News
G
GRAHAM CLULEY
Simon Willison's Weblog
Simon Willison's Weblog
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
P
Proofpoint News Feed
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
U
Unit 42
D
Docker
Webroot Blog
Webroot Blog
N
Netflix TechBlog - Medium
T
Tor Project blog
C
Cyber Attacks, Cyber Crime and Cyber Security
L
LINUX DO - 最新话题
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
The Last Watchdog
The Last Watchdog
B
Blog
Recent Announcements
Recent Announcements
GbyAI
GbyAI
Microsoft Azure Blog
Microsoft Azure Blog
Security Latest
Security Latest
V2EX - 技术
V2EX - 技术
N
News | PayPal Newsroom
Microsoft Security Blog
Microsoft Security Blog

博客园 - CsharpFish

Sql2005 PIVOT运算符的操作 Lodop使用之WEB套打程序开发 jquery插件treeTable Asp.net 后台添加CSS、JS、Meta标签的写法 DataGridView拖动换行 CodeSmith----SchemaExplorer类结构详细介绍 - CsharpFish - 博客园 js request 应用举例 背景图片随窗口拉伸 WebBrowser网页局部打印 - CsharpFish - 博客园 js日期控件-梅花雨 利用VML生成柱状图和饼图 js操作Table绑定DataSet 小小个人消费管理系统(已完善) GridView分页用户自定义控件 DbType与OleDbType asp.net页面传值(transfer Context.Handler) GridViev皮肤(Skin&CSS) JavaScript验证控件并阻止表单提交 GridView自定义分页存储过程
添加修改后返回刷新查询页面
CsharpFish · 2008-07-01 · via 博客园 - CsharpFish

    问题如题,如果返回的不是查询页面而是一个单纯的列表页面也就容易了网上有好多解决方法都是很不错的,可问题是现在返回要刷新的是一个查询页。不但要记录查询条件还要记录GridView的当前页。(下面A为查询页,B为修改页)
    试过很多方法,比如在地址栏里传参数、Session里存放参数、禁用缓存、Server.Transfer()传参、弹出也面等都不能实现全部功能。最后想到了下面的办法虽不是很完美但实现了所要求的功能。
    第一步:
    在A页面添加一个HidenField设ID为hdRefresh,用来记录页面是否需要重新提交。
    再添加一个HidenField设ID为hdCurrentPage,用来记录查询的时候是否需要记录GridView的当前页。
    在page的onload事件里调用Refresh()方法,代码如下:

     <asp:HiddenField ID="hdRefresh" runat="server" Value="false" />
     
<asp:HiddenField ID="hdCurrentPage" runat="server" Value="false" />
     
<script language="javascript" type="text/javascript">
      
function Refresh()
      
{
           
var hdRefresh = document.getElementById("hdRefresh");
           
var hdCurrentPage = document.getElementById("hdCurrentPage");
           
if(hdRefresh.value == "false")
           
{
              hdRefresh.value 
= "true";     
           }

           
else
           
{
              
//window.location.reload();
              hdCurrentPage.value = "true";
              document.form1.submit();
           }

       }

    
</script>


    第二步:
    页面Page_Load的时候设hdRefresh.Value = "false"并判断是否执行查询。

    protected void Page_Load(object sender, EventArgs e)
    
{
        
if (!Page.IsPostBack)
        
{
            Query();
        }

        
if (hdCurrentPage.Value == "true")
        
{
            Query(GvPageSet1.CurrentInfo);
            hdCurrentPage.Value 
= "false";
        }

        hdRefresh.Value 
= "false";
    }

    
    第三步:
    A页面GridView中的编辑和添加HypeLink不能使用GridView本身的OnRowEditing和OnRowDeleting要写成如下形式否则用submit()提交页面的时候会出问题的。

<asp:TemplateField ShowHeader="False" Visible="true">
 
<ItemTemplate>
    <asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# "BillEdit.aspx?ID="+Eval("ID") %>' DataNavigateUrlFields="ID" Text="编辑" Target="_self"></asp:HyperLink>
 
</ItemTemplate>
</asp:TemplateField>

    第四步:
    B页面里用history.go(-?)返回A页面。
    到这里就算是完成任务了,这个方法有一个不好的地方就是利用history.go返回页面后马上就会再次提交页面所以给人一种页面闪了一下的感觉。