zoukankan      html  css  js  c++  java
  • Asp.Net : runat="server" 的form 提交到其他页面的方法

    

    在ASP转换到asp.net的问题

    在一个普通的asp列表中,可以使用X1.Pager带来的便利。
    由于X1.Pager需要一个runat=server的Form,我们可以采用几种方法改造页面。


    方法1、直接修改form的运行位置
     如果将原有的form改为runat=server,如果原来的form中仅有属性name=formName 注意加上id=formName,这样页面中的元素标识同原来一样,不必改动太多。
     
     如果不加这个属性,runat=server的form在形成页面form后,就会是这样的
     <form method="post" action="List.aspx" >
     这样,就会出现javascript脚本可能找不到元素的问题。

     如果原有的页面有这样的代码:

     document.frmThis.action = "Other.aspx?dataid=<%=ColumnID%>&troop=1";
     document.frmThis.submit();
     
     将form中的input提交到其他页面Other.aspx,在下一个页面Other.aspx会产生,ViewState非法的异常。这是因为runat=server的form加了一个隐含的__VIEWSTATE,用于视图状态(ViewState)机制的状态值,这个状态值经过一定的编码,同服务器端的变量进行对应。
     由于下一个页面Other.aspx没有对应的变量,所以就产生异常。
     
     所以如果有这样的代码,就要另外增加一个普通的form,进行数据的传递
     <form method="post" >
     
     在脚本中,增加一个将主form中的值传递到frmThis的方法
     postString = document.all.Abc.value ;
     
     document.frmThis.chkFileId.value = postString ;
     document.frmThis.action = "TroopVol.aspx?dataid=<%=ColumnID%>&troop=1";
     document.frmThis.submit();
     
     如果提交的input比较多,这样做就会非常痛苦。所以,如果有document.frmThis.submit();这类的代码,请使用方法2。
     

    方法2、为PageBar增加一个单独的runat=Server的from
     这样,原有的form就不必改动了,仍然继续使用,那些javascript中的submit也会很正常使用,不必改动。
     这样代码示例:
      <form method="post" runat="server">
      <cc1:pagebar runat="server"></cc1:pagebar>
      </form>        
     注意的问题:
     新增form不要同原有的form嵌套或重叠,可以将主form在PageBar之前结束。
     由于form会产生一定的页面空白,所以,可以放在一些比较隐含的位置,如<table>和<tr>之间

    方法3、彻底解决asp表单的提交。
     完全将asp方式的表单变为asp.net的表单。
     
     将document.frmThis.submit();方式的提交,转变为服务器端事件的方式,在服务器端提交到逻辑层,或者重定向到其他页面Other.aspx

  • 相关阅读:
    微信:JSSDK开发
    JSSDK图像接口多张图片上传下载并将图片流写入本地
    微信JSSDK上传多张图片
    laravel自定义公共函数的引入
    php把数据转换为json格式
    laravel控制器方法中,用函数作为变量进行传递时的处理方法
    ckeditor富文本编辑器的基本配置设置:
    laravel处理菜单保持的方法:
    laravel基于Bootstrap的成功和失败的提示信息和验证提示信息
    laravel Eloquent 查询数据库判断获取的内容是否为空
  • 原文地址:https://www.cnblogs.com/Fooo/p/2083727.html
Copyright © 2011-2022 走看看