2009-11-15 91 views
1

我有一個更新面板中的asp:Label,我需要從服務器應用程序和客戶端Javascript進行更新。我可以通過設置label.innerHTML在第一次UpdatePanel刷新之前更新標籤。服務器在面板更新期間正確更改標籤。更新後,從客戶端Javascript設置label.innerHTML不再更改瀏覽器中顯示的值。如何在更新後更改UpdatePanel中的asp:Label內容?

如何在UpdatePanel更新後找到標籤以繼續從Javascript更新它?

回答

3

由於標籤被替換爲新的DOM元素,所以在UpdatePanel刷新在刷新後不再有效之前,您獲得的對DOM元素的引用可能是document.getElementById。因此,您需要獲取對此元素的新引用,並將innerHTML設置爲此新引用。

事件可能是這樣的

  1. var label = document.getElementById('some_label'); label.innerHTML = 'abc';
  2. 的UpdatePanel是trigerred它取代內部的DOM
  3. label.innerHTML不再適用於標籤。你需要在這裏重複步驟1)。
2

當UpdatePanel刷新時,DOM元素將被替換。任何對前一個DOM元素的引用都不再可用,它們引用已刪除且不再存在的DOM元素。您需要先找到替換的DOM元素,然後才能訪問其屬性。您可以使用document.getElementById('label')或使用jQuery $('#label')來做到這一點,假設您已經給它起了名字label