使用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;

错误为"对象引用未设置为对象实例"

请帮忙。

使用jquery-ajaxpost填充下拉列表,并在c#页面上获得选定的值

我们可以使用Below Code 选择此值

Request.Form["ddlrole"].ToString()

移动此行:

var mddlrole = $('#<%=ddlrole.ClientID %>');

dom加载函数内部,如下所示:

document.ready(function() {    
      var mddlrole = $('#<%=ddlrole.ClientID %>');
....

在当前位置进行变量赋值将为变量赋值null,因为dom当时还没有加载下拉列表。

要访问提交给代码隐藏的值,请使用Request.Form[ddlrole.UniqueID],但请注意,每次发布时,您在客户端上动态添加的选项都会消失(因为它们不处于视图状态)。

我建议您可能应该将您的项目列表绑定到服务器端的下拉列表:您当前的方法使您的生活变得不必要的复杂(并导致额外的、可能不必要的往返服务器)。