2012-07-03 18 views
0

好的,我在這裏有一個小問題。我已經積累了一個ASP.NET項目,它運行一個頁面的所有內容並且沒有回發功能。該網站的核心使用我們正試圖處理的Silverlight應用程序。如何阻止動態網頁控件觸發page_load?

我是新來的ASP.net Web應用程序,如此裸露與我。

基本上我試圖使用下面的代碼動態創建列表項。

void AddLinkButton(string id, string text) { 
     LinkButton link = new LinkButton(); 
     link.ID = id; 
     link.Text = text; 
     link.Click += new EventHandler(link_Click); 
     HtmlGenericControl li = new HtmlGenericControl("li"); 
     li.Controls.Add(link); 
     tabsNav.Controls.Add(link); 
    } 

這一切工作正常和丹迪。但是,單擊鏈接時,它將重新運行page_load,然後運行click事件。如何阻止page_load重新加載所有內容並僅更新我希望刷新的內容?

如果這是不可能的,我就這樣做。我會接受建議以獲取我正在尋找的功能。

回答

2

Page_Load是標準ASP.NET Page lifecycle對回傳&回調的一部分,您所遇到的行爲預期。

爲了讓你不創建回發的按鈕有類似的代碼來

protected void Page_Load(object sender, EventArgs e) 
{ 
    if(!IsPostBack && !IsCallback) 
     AddLinkButton("abc", "abc"); 
} 

這隻會增加LinkBut​​ton的當用戶請求頁面的頁面第一次控制,但而不是隨後。

+0

我明白了。這回答了我的問題。我主要做後端開發,所以網絡上的東西需要一些時間去適應。 – meanbunny

2

大多數情況下,我們使用!IsPostBack if語句來包裝我們不想在頁面加載中執行的內容。

private void Page_Load() 
{ 
    if (!IsPostBack) 
    { 
     //Do actual page load stuff 
    } 
}