2012-02-27 67 views
0

有一個主頁的aspx頁面。 這個母版頁有一個用戶控件。如何從不同的aspx頁面刷新mastercontrol中的usercontrol?

我在aspx頁面中使用腳本管理器。點擊按鈕後,我正在更新usercontrol(母版頁)中的標籤文本。

+0

簡單的事情名爲ucLabelText的屬性,如果你想從客戶端做到這一點,你可以使用如Javascript/jQuery的一些腳本找到控制,並進一步採取行動。 – 2012-02-27 10:56:35

+0

我正在努力做到這一點,但它不起作用。導致網頁包含更新面板和用戶控制在面板之外。有沒有辦法更新更新面板之外的用戶控件? – jeeunit02 2012-02-27 11:30:29

+0

您可以編寫一個服務器端函數,該函數使用FindControl返回'ClientId',然後在標記中添加一個返回''<%YourFunction()%>'的JS函數。當它到達客戶端時,它將返回由asp.net生成的ID,因此,只要需要ID,就可以引用JS函數。 – 2012-02-27 15:41:46

回答

0

在頁面你可以做這樣的事情:

WebUserControl1 wuc = (WebUserControl1) Master.FindControl("wucId1"); 
wuc.ucLabelText = "whatever"; 

其中WebUserControl1是您的用戶控件的名稱,wucId1是其在母版頁中的ID。
假定你有一個在用戶控制標籤的文本

+0

您需要編寫:(wuc .FindControl(「ucLabelText」)as Label) .Text =「更改文字」;但是你無法直接找到它。 – 2012-02-27 15:02:40

+0

感謝您的評論@SivaGopal,這就是爲什麼我添加了假設,標籤的文本是用戶控件的屬性(即您添加一個屬性,設置並從標籤的文本中獲取它的值(如DanielCasserly所做的那樣在他的回答的開頭)) – 2012-02-27 15:17:06

0

如果將文本作爲usercontrol中的屬性公開,然後再從母版頁顯示到aspx頁面,並且可以在運行時更改它。即:

[用戶控制] 公共字符串LabelText的 { 得到{lbText.Text;} 集合{lbText.Text =值;}}

[主頁] 公共字符串ucLabelText { 得到{ucUsercontrol.LabelText;} 集合{ucUserControl.LabelText =值;}}