Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/91.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
Javascript ASP.NET-设置下拉列表';使用JS创建值和文本属性_Javascript_Html_Asp.net_Ajax - Fatal编程技术网

Javascript ASP.NET-设置下拉列表';使用JS创建值和文本属性

Javascript ASP.NET-设置下拉列表';使用JS创建值和文本属性,javascript,html,asp.net,ajax,Javascript,Html,Asp.net,Ajax,我的ASCX页面中有一个Dropdownlist控件 <asp:DropDownList ID="demoddl" runat="server" onchange="apply(this.options[this.selectedIndex].value,event)" onclick="borderColorChange(this.id, 'Click')" onblur="borderColorChange(this.id)" CssClass="dropDownBox" DataTe

我的ASCX页面中有一个Dropdownlist控件

<asp:DropDownList ID="demoddl" runat="server" onchange="apply(this.options[this.selectedIndex].value,event)" onclick="borderColorChange(this.id, 'Click')" onblur="borderColorChange(this.id)" CssClass="dropDownBox" DataTextField="EmpName" DataValueField="EmpID">

我的目标是用'EmpID'作为值属性和'EmpName'作为文本属性来填充这个Dropdownlist

获取这些“EmpName”和“EmpID”值的JS代码如下:

$(document).ready(function () 
{
loadSavedFreeTextSearchCombo();
}


function loadSavedFreeTextSearchCombo() {

    var params = {
        loginID: $('#loginID').val()
    };

    var paramsJSON = $.toJSON(params);

    $.ajax({
        type: "POST",
        url: _WebRoot() + "/Ajax/EmpDetails.asmx/GetEmp",
        data: paramsJSON,
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (data) {
            $('#demoddl').empty();
            $('#demoddl').append($("<option></option>").val(0).html("--Employee Names --"));
            $.each(data.d, function (index, value) {
                $('#demoddl').append($("<option></option>").val(value.EmpID).html(value.EmpName));
            });

        },
        error: function () {
            showError("Failed to load Saved Search Data!");

        }
    });

}
$(文档).ready(函数()
{
loadSavedFreeTextSearchCombo();
}
函数loadSavedFreeTextSearchCombo(){
变量参数={
loginID:$('#loginID').val()
};
var paramsJSON=$.toJSON(params);
$.ajax({
类型:“POST”,
url:_WebRoot()+“/Ajax/EmpDetails.asmx/GetEmp”,
资料来源:paramsJSON,
contentType:“应用程序/json;字符集=utf-8”,
数据类型:“json”,
成功:功能(数据){
$('#demodmdl').empty();
$('#demodmdl').append($(“”).val(0.html(“--Employee Names--”);
$.each(数据.d,函数(索引,值){
$('#demodmdl').append($(“”).val(value.EmpID.html(value.EmpName));
});
},
错误:函数(){
淋浴错误(“加载保存的搜索数据失败!”);
}
});
}
尽管整个代码运行时没有任何错误(EmpDetails.asmx方法成功地返回了有效数据),但DropdOnlist不会被返回的所需数据填充


我做错了什么?我猜我的“成功”事件代码有问题,因为您打算使用
DropDownList
服务器控件ID作为选择器,所以有必要设置
clientmode=“Static”
,尤其是当您使用
阻止ASPX引擎创建
元素时,该元素的
id
属性包含下拉列表的占位符名称:

<asp:DropDownList ID="demoddl" runat="server" ClientIDMode="Static"
                  onchange="apply(this.options[this.selectedIndex].value,event)"
                  onclick="borderColorChange(this.id, 'Click')"
                  onblur="borderColorChange(this.id)" 
                  CssClass="dropDownBox" DataTextField="EmpName" DataValueField="EmpID">

谢谢@Tetsuya Yamamoto。添加'ClientIDMode'属性有帮助。
$.ajax({
    type: "POST",
    url: _WebRoot() + "/Ajax/EmpDetails.asmx/GetEmp",
    data: paramsJSON,
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function (data) {
        $('#<%= demoddl.ClientID %>').empty();
        $('#<%= demoddl.ClientID %>').append($("<option></option>").val(0).html("--Employee Names --"));

        // recommended to check against undefined here
        $.each(data.d, function (index, value) {
            $('#<%= demoddl.ClientID %>').append($("<option></option>").val(value.EmpID).html(value.EmpName));
        });

    },
    error: function () {
        showError("Failed to load Saved Search Data!");
    }
});