Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用jquery ajax post填充下拉列表,并在c#页面上获取所选值_C#_Javascript_Jquery_Asp.net_Ajax - Fatal编程技术网

使用jquery ajax post填充下拉列表,并在c#页面上获取所选值

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

我用document.ready函数上的ajax post填充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);
                });

            }

        });
    });
“对象引用未设置为对象实例”时出错

请帮助。

移动此行:

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()