填充沒有任何問題,但是在伺服器端卻取不出來下拉表中的內容。頁面代碼如下。
複製代碼 代碼如下:<form id="form1" runat="server">
<div>
<h3>看看用js填充的dropdownlist控制項在伺服器端能讀出來嗎?</h3>
三個級聯下拉式清單方塊:
<asp:DropDownList runat="server" id="bigTypeList" Width="150">
</asp:DropDownList>
<asp:DropDownList runat="server" id="typeList" Width="150">
</asp:DropDownList>
<asp:DropDownList runat="server" id="smalltypeList" Width="150">
</asp:DropDownList>
<br />
<asp:Button runat="server" Text="讀取下拉表" ID="OK" onclick="OK_Click" /><br />
你選的是:<asp:Label runat="server" Text="Label" ID="label1"></asp:Label>
</div>
</form>
用來測試的後台代碼如下。 複製代碼 代碼如下:protected void OK_Click(object sender, EventArgs e)
{
ListItem[] array = new ListItem[3];
array[0] = bigTypeList.SelectedItem; //為null
array[1] = typeList.SelectedItem; //為null
array[2] = smalltypeList.SelectedItem; //為null
}
事實證明,在伺服器端讀取用戶端填充的DropDownList控制項的值時,根本讀不到任何內容。DropDownList.Items.Count為0,DropDownList.SelectedItem為null。
那麼,怎麼得到這個值呢,只好使用Request.Form["控制項的用戶端ID"]了。如下代碼所示。 複製代碼 代碼如下:string s=Request.Form[typeList.ClientID];
附:頁面中的JavaScript檔案。 複製代碼 代碼如下:<script language="javascript" type="text/javascript">
$(function () {
var bigId = '#<%=bigTypeList.ClientID%>';
var mediumId = '#<%=typeList.ClientID%>';
var smallId = '#<%=smalltypeList.ClientID%>';
$(bigId).cascadingDropDown(mediumId,
'../Services/AutoTypeService.asmx/getAutoType',
{ valueMember: 'id', displayMember: 'name', cascadingArgName: 'parent' });
$(mediumId).cascadingDropDown(smallId,
'../Services/AutoTypeService.asmx/getSubAutoType',
{ valueMember: 'id', displayMember: 'name', cascadingArgName: 'parent' });
});
</script>
結束。