2011-08-03 37 views
0

我在運行時使用AJAX回調函數生成2個下拉框和一個CheckBoxList控件(.asmx文件)。該服務在服務器上創建兩個Dropdowns和CheckBoxList,並將呈現的html作爲字符串返回,並在運行時使用javascript函數將其注入到網頁中。ASP.NET訪問AJAX在postBack上創建的控件

在postBack期間,我想獲取兩個下拉框的值,並確定勾選了哪些(如果有的話)複選框。

我是否認爲在運行時注入頁面的HTML在回發期間不會被髮送回服務器?如果是這種情況,那麼獲得我的價值觀最明智的方式是什麼?

我在想,獲取動態控件的值的最佳方法是使用javascript讀取值並將它們寫入屬於頁面類的隱藏字段中,就在回發之前。

如果有更好的方法來做到這一點,那麼請分享!

+0

我能想到的三種常見方式是; 1使用AJAX回發整個表單,2使用Request.Form集合獲取當前值(不適用於所有控件,適用於大多數帶有文本屬性的控件),3將數據存儲在隱藏的輸入字段和/或曲奇餅。 – Zachary

回答

1

回傳過程中獲取自己的價值觀的一種方法是通過在一個隱藏字段,作爲元素名建議節約值是頁面上看不見的 -

<asp:HiddenField id="countrySelected" value="" />

在你的JavaScript後前揹你可以填充您所需要的信息 -

document.getElementById('countrySelected').value = 'USA';

在你的代碼隱藏,你可以再選擇價值被使用 -

countrySelected.value

1

由於Web服務創建該頁面後注入他們不是服務器控件,因此,服務器無法知道它們的存在方式的HTML。隱藏的HTML元素在我看來是這種情況下的方式。