使用jquery-ajaxpost填充下拉列表,并在c#页面上获得选定的值
本文关键字:填充 jquery-ajaxpost 下拉列表 并在 使用 | 更新日期: 2023-09-27 18:19:39
我在document.ready函数上用ajax帖子填充了dropdownlist,但我想要它在cs页面上的选定值,但它给我返回了空白值。请帮助。。下面是我的代码
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);
});
}
});
});
on.cs页面
string filterQuery = dlddlrole.SelectedItem.Value;
错误为"对象引用未设置为对象实例"
请帮忙。
我们可以使用Below Code 选择此值
Request.Form["ddlrole"].ToString()
移动此行:
var mddlrole = $('#<%=ddlrole.ClientID %>');
dom加载函数内部,如下所示:
document.ready(function() {
var mddlrole = $('#<%=ddlrole.ClientID %>');
....
在当前位置进行变量赋值将为变量赋值null,因为dom当时还没有加载下拉列表。
要访问提交给代码隐藏的值,请使用Request.Form[ddlrole.UniqueID]
,但请注意,每次发布时,您在客户端上动态添加的选项都会消失(因为它们不处于视图状态)。
我建议您可能应该将您的项目列表绑定到服务器端的下拉列表:您当前的方法使您的生活变得不必要的复杂(并导致额外的、可能不必要的往返服务器)。