javascript 客戶端觸發伺服器端事件

來源:互聯網
上載者:User

private void Page_Load(object sender, System.EventArgs e)
{
this.txtMediaDate.Attributes["onblur"] = "__doPostBack('"+this.LinkButton1.ClientID+"','')";
this.LinkButton1.Attributes.CssStyle["display"]="none";
this.LinkButton1.Click +=new EventHandler(MediaDate_LostFocus);
}
private void MediaDate_LostFocus(object sender, EventArgs e)
{
Response.Write("wlsadfl");
}  

http://blog.csdn.net/kucool/archive/2007/11/22/1898116.aspx

<div>
<input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" />
<input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" />
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwULLTE4NDIzMDg2NDRkZMlHJoBQ9CYcWBtBK+zrfZzKoh/i" />
</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>
    <div>

aspx中LinkButton的代碼:
<asp:LinkButton ID="LinkButton1" runat="server" OnClick="LinkButton1_Click">button1</asp:LinkButton>
在html中的源碼中被翻譯成了:
<a id="LinkButton1" href="javascript:__doPostBack('LinkButton1','')">button1</a>

上面的代碼可以明顯的看出,LinkButton只不過就是一個超連結,他的連結就是執行javascript語句通過調用__doPostBack函數來調用伺服器端的後台代碼的。因此,在有LinkButton的頁面,會自動加上上面的__doPostBack函數。

但是在我們調用__doPostBack函數時,有些時候調用這個函數會出現"對象不存在"的指令碼錯誤? 那是因為Html裡面沒有__doPostBack函數體,一般在拖放那些有自動回傳功能的控制項時,當把他的autoPostback屬性設為True,在啟動並執行時候系統會自動添加__doPostback函數體,當然最直接的辦法就是添加一個LinkButton然後把其Text屬性設為空白,切記不要設Visible屬性,因為如果Visible=false,在翻譯成Html時,直接就忽略LinkButton的存在了。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.