程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> ASP.NET基礎 >> asp.net下利用JS實現對後台CS代碼的調用方法

asp.net下利用JS實現對後台CS代碼的調用方法

編輯:ASP.NET基礎
要求是這樣的:在gridView中有些行是沒有處理過的,用戶用鼠標點擊該行後即表示用戶處理過這一行了,行的狀態要和普通的一樣了,但是GridView沒有對行的事件處理,必須要用JavaScript對後台的事件進行調用,如果細心的話你會發現實際上在我們在頁面上添加一個LinkButton並給它添加一個事件之後,實際上就是通過JavaScript進行的回傳。
      當我們添加一個LinkButton,生成頁面並查看源代碼,會發現比沒有添加LinkButton之前多了些代碼

<div>
<input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" />
<input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" />
</div>
<script type="text/javascript">
<!--
var theForm = document.forms['form1'];
if (!theForm) {
    theForm = document.form1;
}
function __doPostBack(eventTarget, eventArgument) {
    if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
        theForm.__EVENTTARGET.value = eventTarget;
        theForm.__EVENTARGUMENT.value = eventArgument;
        theForm.submit();
    }
}
// -->
</script>

而LinkButton的事件實際上就是JavaScript事件

<a id="LinkButton1" href="javascript:__doPostBack('LinkButton1','')">LinkButton</a>

那麼如果有了上面的這部分JavaScript是不是我可以利用JavaScript進行回傳呢?
當然可以了,但是我們有一點需要注意一下,我們需要修改頁面的一個屬性EnableEventValidation,默認是true,我們把它修改成false,即頁面中使用 <%@ Page EnableEventValidation="false" %>否則會報錯。
下面是我利用Html控件進行的回傳調用LinkButton的事件

<input id="Button1" type="button" value="button" onclick="__doPostBack('LinkButton1','')" />

如果那天需要利用JS進行回傳了,而頁面中有沒有可以添加後就生成這些代碼的控件,那就把把上面的代碼拷到頁面了不就成了嗎,:-)
注意這個方法可以調用已經存在的控件的事件。不能調用方法,不知道有沒有別的方法可以實現。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved