Asp.Net : runat=”server” 的form 提交到其他頁面的方法

來源:互聯網
上載者:User

在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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.