2008-09-19 24 views

回答

0

我想他在這裏問的是如何連接javascript函數與您的ASP.NET回發功能齊頭並進。

即如何使用我自己的Javascript觸發控件的事件。

ASP.NET類庫包含一個ClientScript類 - 在System.Web.UI.Page類中找到 - 它使您能夠以編程方式將JavaScript添加到ASP.NET頁面。

這包含一個名爲'GetPostBackEventReference'的方法,該方法將生成__doPostBack腳本ASP.NET用來觸發連接到您的Web控件的事件。

希望是有道理的

1

你的意思是這樣的:

在後面的代碼:

protected string GetPostBack() 
{ 
    return ClientScript.GetPostBackEventReference(this, null); 
} 

,並在你的aspx:

<a href="javascript:<%=GetPostBack() %>">Click here to postback</a> 
4
<asp:LinkButton ID="lbEdit" CssClass="button" 
      OnClientClick="javascript:alert('do something')" 
      onclick="OnEdit" runat="server">Edit</asp:LinkButton> 

OnClientClick attr ibute意味着你可以添加一些javascript而不會丟失PostBack功能,這是我在面試中的答案。

2

解釋回發是如何工作的

回發上其模擬了一個無狀態協議狀態行爲的網絡協議之上的抽象。

,在客戶端

在客戶端兩種,回發是由JavaScript調用和所有控件的狀態存儲在網頁上的隱藏字段來實現的。

和服務器端。

服務器端經歷事件的生命週期,生命週期的一部分是視圖狀態的水合,以維持頁面上所有控件的狀態,並根據參數提升事件被傳遞到客戶端上的電話__doPostBack

如何連鎖我自己的JavaScript到 客戶端不失 回傳功能?

取決於需要什麼。 99%的時間最簡單的方法是使用asp:hiddenfield在客戶端和服務器端進行通信。對於邊緣情況,您希望進入Exenders並通過MS ajax API在JavaScript中操作viewstate/controlstate/clientstate。這是一個巨大的學習曲線和大量的陷阱的相當痛苦,通常使用隱藏字段和手動調用__doPostBack就夠


這是我會怎麼回答子彈點。欲瞭解更多關於__doPostBack的信息,快速谷歌會給你很多結果(對於懶惰,這是第一次打http://aspalliance.com/895

相關問題