使用jquery ajax post填充下拉列表,并在c#页面上获取所选值
我用document.ready函数上的ajax post填充dropdownlist,但我希望它在cs页面上的选定值,但它会向我返回空白值。下面是我的代码使用jquery ajax post填充下拉列表,并在c#页面上获取所选值,c#,javascript,jquery,asp.net,ajax,C#,Javascript,Jquery,Asp.net,Ajax,我用document.ready函数上的ajax post填充dropdownlist,但我希望它在cs页面上的选定值,但它会向我返回空白值。下面是我的代码 var mddlrole = $('#<%=ddlrole.ClientID %>'); document.ready(function() { $.ajax({ type: "POST", url: "ReportBasic.aspx/getroled
var mddlrole = $('#<%=ddlrole.ClientID %>');
document.ready(function() {
$.ajax({
type: "POST",
url: "ReportBasic.aspx/getroledata",
data: '{}',
contentType: "application/json;",
dataType: "json",
success: function(response) {
debugger;
xmlDoc = $.parseXML(response.d.toString()),
$xml = $(xmlDoc)
$xml.find('Table').each(function() {
var OptionValue = $(this).find('RoleID').text();
var OptionText = $(this).find('Name').text();
var option = new Option(OptionText, OptionValue);
$(option).html(OptionText);
$(mddlrole).append(option);
});
}
});
});
“对象引用未设置为对象实例”时出错
请帮助。移动此行:
var mddlrole = $('#<%=ddlrole.ClientID %>');
var mddlrole=$('#');
在dom加载函数内部,如下所示:
document.ready(function() {
var mddlrole = $('#<%=ddlrole.ClientID %>');
....
document.ready(函数(){
var mddlrole=$(“#”);
....
在当前位置分配该变量将为该变量分配null,因为dom在该位置尚未加载下拉列表
要访问提交给代码隐藏的值,请使用Request.Form[ddlrole.UniqueID]
——但请注意,每次发回时,您在客户端动态添加的选项都将消失(因为它们不在viewstate中)
我建议您可能应该将您的项目列表绑定到服务器端的下拉列表中:您当前的方法使您的生活变得不必要的复杂(并创建额外的、可能不必要的到服务器的往返)。我们可以使用以下代码选择此值
Request.Form["ddlrole"].ToString()
PS-错误是发生在客户端还是服务器端?谢谢,我们必须从请求中选择值。表单[“ddlrole”]。tostring()您能澄清一下……在页面加载时是否成功填充了下拉列表吗?(这是我一开始读到您的问题的方式,但并不十分清楚,因此是我答案的第一部分)
Request.Form["ddlrole"].ToString()