2012-01-25 106 views
0

我想知道是否正常。我使用jQuery添加了一個選項。當我用asp按鈕保存時,在click事件中看不到服務器端的更改。服務器端不會在客戶端看到更改

添加選項後,HTML全部正確。

這是編碼問題還是我不​​明白? :P

$(selectCourant) 
      .append($("<option></option>") 
      .attr("value",$(dropdown).val()) 
      .text($(dropdown + " option:selected").text())); 

謝謝

ASP.NET和vb.net

回答

4

是的,你不明白的東西。

在客戶端Web瀏覽器端發生的事情不會通知服務器 - 除非您編寫額外的代碼並以編程方式執行該操作。

服務器端不知道,nether讀取dom(html結構),即使他想這樣做,他也看不懂它。

一個解決方案是用一個後期值發回它。例如,當您添加一個選項時,還可以將其他值添加到隱藏的輸入中,並將您的操作回發給服務器端。然後,你負責任地閱讀這些值,理解它們並在代碼後面更新你的數據。

後面的代碼不僅不知道客戶端發生了什麼,還不知道發生了什麼,在頁面發送完成之後回來,並返回到視圖狀態。 Codebehind將視圖狀態的大部分信息保存(除非您在控件或頁面上禁用它)以記住這些更改。然後在發回視圖狀態發送到後面的代碼,並在後面的代碼解碼它,並知道發佈之前做了什麼。

再多說幾句話。 當您準備並「渲染」html頁面時,您將所有的html結構發送到瀏覽器客戶端,並且瀏覽器呈現頁面。當瀏覽器向服務器發回帖子時,只發送發回的變量,所以服務器只知道返回的信息,並使用這些信息重新播放一個新的html結構。

+0

謝謝。很好的解釋! – Marc

相關問題