添加修改后返回刷新查询页面

    问题如题,如果返回的不是查询页面而是一个单纯的列表页面也就容易了网上有好多解决方法都是很不错的,可问题是现在返回要刷新的是一个查询页。不但要记录查询条件还要记录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返回页面后马上就会再次提交页面所以给人一种页面闪了一下的感觉。

转载于:https://www.cnblogs.com/hongyuniu/archive/2008/07/01/1232886.html

### 解决 UniApp 刷新页面后使用 `navBack` 返回到首页的问题 在 UniApp 中,当页面刷新执行 `navBack` 方法时可能会跳转至首页而不是上一页。这是因为刷新操作会重置应用的状态,使得当前页成为新的根页面。在这种情况下调用 `navBack` 将不会找到历史记录中的前一页。 为了处理这种情况,可以采用以下方法: #### 使用全局状态管理保存导航栈 通过 Vuex 或者本地存储来维护一个自定义的导航栈,在每次路由切换时更新该栈的内容。这样即使页面刷新,也可以恢复之前的导航路径[^1]。 ```javascript // store.js (Vuex example) export default new Vuex.Store({ state: { navigationStack: [] }, mutations: { pushToNavStack(state, routeName) { state.navigationStack.push(routeName); }, popFromNavStack(state) { state.navigationStack.pop(); } }, }); ``` 在每个页面加载时向导航栈中添加当前页面名称,并在离开页面时移除它: ```javascript onLoad() { this.$store.commit('pushToNavStack', 'currentRoute'); // 替换为实际逻辑获取route name }, onUnload() { this.$store.commit('popFromNavStack'); } ``` 之后可以在需要的地方读取这个堆栈来进行手动控制返回行为: ```javascript methods: { customNavBack(){ const lastPage = this.$store.state.navigationStack[this.$store.state.navigationStack.length - 2]; if(lastPage){ uni.redirectTo({url:`/${lastPage}`}); }else{ console.log("No previous pages"); } } } ``` #### 修改 Webpack 配置实现单页面模式下的缓存策略调整 如果项目基于 HBuilderX 构建,则可以通过修改其内部使用的 webpack 配置文件来设置更合适的缓存机制,从而减少因强制刷新带来的影响[^2]。 对于 XAMPP 用户来说,可能还需要注意服务器端的相关配置项是否允许跨域请求等问题[^3]。 最终解决方案取决于具体应用场景以及开发者的偏好设定等因素综合考虑决定最佳实践方案。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值