我已经使用AJAX填充了ASP.net下拉列表,现在我需要使用C#方法将Id存储到数据库中,(我正在使用LINQ)
这是我的网络方法
[WebMethod]
public static ArrayList GetLanguageList()
{
ArrayList lstArrLanguage = new ArrayList();
IQueryable<Common.Town> myList = new SupplierBL().GetTowns();
foreach(Common.Town t in myList)
{
string name = t.Name;
string id = t.TownId.ToString();
lstArrLanguage.Add(new ListItem(name, id));
}
return lstArrLanguage;
}
我的test.aspx代码
<script language="javascript" type="text/javascript">
$(document).ready(function () {
$.ajax({
type: "POST",
url: "test.aspx/GetLanguageList",
data: '',
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
$("#ddlLanguage").empty().append($("<option></option>").val("[-]").html("Please select"));
$.each(msg.d, function () {
$('#<%=ddlLanguage.ClientID%>').append($("<option></option>").val(this['Value']).html(this['Text']));
});
},
error: function () {
alert("An error has occurred during processing your request.");
}
});
});
</script>
答案 0 :(得分:7)
如果您在DropDownList
中添加选项,则无法从javaScript
获取所选值。您可以尝试以下
string selectedValue = Request.Form[ddlLanguage.UniqueID];
此question也可能有用。
答案 1 :(得分:0)
如果您通过ajax填充下拉列表的值比在服务器端上不可用,因为页面在ajax请求期间不回发。
为了获得C#中下拉列表的值,请使用以下代码段:
String _value = Convert.ToString(Request[ddlLanguage.ClientID]);
希望这会有所帮助!!