我在使用JQuery的ASP.NET頁面上發現了一些困難。特別是我有兩個主要問題。我需要使用JQuery來更改Label
和DropDownList
的值,然後我必須從後面的代碼中讀取這些值,但是當我這樣做時,我會找到原始值。在客戶端進行的更改將被忽略。如何從JQuery設置的值後面讀取代碼?
如何在服務器端讀取正確的值?
我在使用JQuery的ASP.NET頁面上發現了一些困難。特別是我有兩個主要問題。我需要使用JQuery來更改Label
和DropDownList
的值,然後我必須從後面的代碼中讀取這些值,但是當我這樣做時,我會找到原始值。在客戶端進行的更改將被忽略。如何從JQuery設置的值後面讀取代碼?
如何在服務器端讀取正確的值?
不是使用標籤和下拉列表來設置值,而是使用Hiddenfield設置值,然後在代碼後面使用HiddenField.Value獲取該值。在大多數情況下,可以看到Label和DropdownLists值在Javascript代碼設置不能在代碼中檢索的背後,卻HiddenField值可以是retrieved.So嘗試使用HiddenField ...
在Javascript中: -
<script>
$("#HiddenField1").Val("Your Value");
</script>
在代碼隱藏: -
string value=HiddenField1.Value;
謝謝。好主意! – davioooh 2012-08-02 09:43:01
$("#mydropdownlist").val("thevalue");
只是確保選項標記中的值與val方法中的值匹配。
如果索引工作,就可以使用.attr()直接設置選擇指數:
$("#mydropdownlist").attr('selectedIndex', 0);
這將其設置爲在droplist的第一個值。
試試這個:使用Ajax請求更改服務器結果。當更改下拉選擇。
$(function() {
$('#type').bind('change', function(ev) {
var value = $(this).val();
$.ajax({
...
data: {valueType: value, html: encodeURIComponent($("#addhtml").html())},
...
});
});
});
我曾經有過類似的問題,這個問題是事件驗證,http://msdn.microsoft.com/en-us/library/system.web.ui.page.enableeventvalidation.aspx,也可能是同樣的問題。
您能發佈一個代碼示例嗎?我認爲你的建議可能有用,但我不能完全理解如何應用它。 – davioooh 2012-08-02 08:20:32
頁面上的所有服務器端代碼(您的代碼隱藏)在響應發送到瀏覽器之前在服務器上執行。爲了響應客戶端的變化,爲了做一些服務器端的事情,你需要向Web服務器發出另一個請求,通常是使用傳統的表單元素提交或使用Ajax。 – nnnnnn 2012-08-02 07:51:58
@nnnnnn我實際上並不需要對客戶端更改進行異步響應。我需要的是將所有更改發回服務器端... – davioooh 2012-08-02 08:00:37