問題2: 每次與後臺打交道 都需要寫一些自己都看不太懂的事件,而且傳參數很麻煩,這就是.net 封裝的事件,如何解決呢? 首先不要以為寫webfrom事件,都需要通過 伺服器控制項來綁定後臺的事件,其實說白了綁定的事件其實都是form表單提交,而且還都是id為form1的表單提交。 如果你不知道這些, ...
問題2: 每次與後臺打交道 都需要寫一些自己都看不太懂的事件,而且傳參數很麻煩,這就是.net 封裝的事件,如何解決呢?
首先不要以為寫webfrom事件,都需要通過 伺服器控制項來綁定後臺的事件,其實說白了綁定的事件其實都是form表單提交,而且還都是id為form1的表單提交。
如果你不知道這些,那麼你為了調用前臺的方法, 還要寫onclientclick ,如果 美工做出來的效果的是 一個 div 或者 一個span ,滑動的時候,點擊的時候,滾動的時候,都想與 後臺進行交互,而且還要在 任務沒有完成時實現進度條 ,完成後進度條消失,一般人的想法是使用 ajax,寫過ajax的人都知道寫ajax很麻煩,而且代碼可讀性,維護性,擴展性都不好,為什麼我們可以自己寫js 方法直接調用後臺呢?
說了這麼多廢話,其實我想說的 ,我們需要 創造一個 js 的方法 goHouTai(方法名,參數), 然後直接就能執行後臺代碼,並且自動的將 參數傳到後臺,並且將直接執行後臺的代碼,請問有這種方法嗎?,.net 不是自帶的,但是我們可以自己寫啊!!!!!
首先來看實現的思路,我們是否可以這樣封裝方法呢?
1.在頁面放置 2個 隱藏控制項,一個隱藏控制項用來存方法名,一個隱藏控制項用來存 參數 ,例如
<asp:HiddenField runat="server" ID="fangfa"/>
<asp:HiddenField runat="server" ID="canshu"/>
2.然後使用jquery 模擬表單提交 ,將方法名 ,參數放入隱藏控制項中,然後執行表單提交,例如:
function submitForm(fangfa,canshu)
{
$("#fangfa").val(fangfa);
$("#canshu").val(canshu);
$("#form1").submit();
}
3. 後臺在 Page_Load 中,根據傳進來的參數名字不同就可以,執行後臺的方法了,例如:
protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { } else { switch (fangfa.Value) { case "test": test(canshu.Value); break; } } }
4.然後我們來調用我們的方法:
<input type="button" value="test" onclick="submitForm('test','aaaaaaa')"/>
測試下能否執行(測試通過)
註意事項: 我們需要將所有的 控制項在 form1 的表單中
這樣寫我們基本就解決了 直接通過 js 傳 方法名和參數就可以調用後臺的方法,也達到了我們的目的!!
這樣寫 我們不就可以通過 傳方法 和參數就可以執行執行後臺代碼了,如果細心的人會發現,這樣寫很麻煩,而且每個頁面都要這樣寫,豈不是代碼冗餘 很嚴重,而且如果傳入多個參數怎麼辦,豈不是要分割字元串,如何去優化 這裡的代碼,我會在下期中慢慢去分解 去消化!!!