程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> ASP.NET基礎 >> 客戶端用JavaScript填充DropDownList控件 服務器端讀不到值

客戶端用JavaScript填充DropDownList控件 服務器端讀不到值

編輯:ASP.NET基礎
填充沒有任何問題,但是在服務器端卻取不出來下拉表中的內容。頁面代碼如下。
復制代碼 代碼如下:
<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>

結束。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved