乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      ASP.NET的OnClientClick與OnClick事件

       藍(lán)調(diào)書軒 2015-11-18

      做網(wǎng)頁經(jīng)常要和JavaScript打交道,經(jīng)常要用JavaScript做一些客戶端的驗(yàn)證,但是如果我們的按鈕用的是HTML控件的話,驗(yàn)證通過后無法調(diào)用后臺代碼,如果用服務(wù)器端控件,驗(yàn)證不通過有要刷新頁面,這個(gè)有時(shí)候挺煩人的,能不能讓服務(wù)器段的按鈕調(diào)用客戶端的驗(yàn)證,如果驗(yàn)證成功后在調(diào)用服務(wù)器端的方法,這樣既減少了網(wǎng)路傳輸,給用戶感覺也好。

      OnClientClick是客戶端事件方法.一般采用JavaScript來進(jìn)行處理.也就是直接在IE端運(yùn)行.一點(diǎn)擊就運(yùn)行.

      OnClick事件是服務(wù)器端事件處理方法,在服務(wù)器端,也就是IIS中運(yùn)行.點(diǎn)擊按鈕后,執(zhí)行postback,再運(yùn)行.

      如果一個(gè)按鈕上我們同時(shí)有客戶端的OnClientClick方法又有OnClick事件處理方法,如何才能按照正常的邏輯運(yùn)行呢?

      OnClientClick中我們常用來做一些客戶端的檢測.當(dāng)然放在服務(wù)器也可以做同樣的檢測,但這樣做的代價(jià)是與服務(wù)器進(jìn)行交互,消耗資源。

      例:

      test()為一javascript函數(shù).

      復(fù)制代碼
          <script type="text/javascript">
      function test() {
      var value = document.getElementById("<%=t1.ClientID%>").value;
      if (value == "") {
      alert("不能為空值");
      return false;
      }
      }
      </script>
      復(fù)制代碼

      t1為一文本框,判斷輸入內(nèi)容是否為空

      <asp:TextBox ID="t1" runat="server"></asp:TextBox>
              <asp:Button ID="Button1" runat="server" Text="提交"  OnClientClick="return test()" onclick="Button1_Click"  />

      需要注意的是當(dāng)我們當(dāng)擊這個(gè)按鈕時(shí),自動(dòng)先執(zhí)行的客戶端,再執(zhí)行服務(wù)器端的.如果客戶端返回的是false,那么服務(wù)器端對應(yīng)的方法永遠(yuǎn)不會(huì)執(zhí)行.這樣就達(dá)到檢測,只有通過才去執(zhí)行服務(wù)器端的方法.

      也就是說如果我們上面寫成:

              <asp:Button ID="Button1" runat="server" Text="提交"  OnClientClick="test();return false" onclick="Button1_Click"  />

       

      那么不管test()執(zhí)行的結(jié)果如何.服務(wù)器端對應(yīng)的Button1_Click方法都永遠(yuǎn)不會(huì)執(zhí)行.因?yàn)閞eturn false使得始終使客戶端返回false

      如果我們寫成:

              <asp:Button ID="Button1" runat="server" Text="提交"  OnClientClick="test()" onclick="Button1_Click"  />

       

      那么Button1_Click都有會(huì)發(fā)生.同樣也就達(dá)不到效果.也就是說你沒有通過檢測也去執(zhí)行服務(wù)器的方法了.

      還可以通過Button1.Attributes.Add("onclick", "test()");的方法來觸發(fā)客戶端事件

        本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多