【问题标题】:Not able to bind dropdownlist values coming from json values from databases in jquery无法绑定来自 jquery 数据库中 json 值的下拉列表值
【发布时间】:2021-01-09 13:04:57
【问题描述】:

我想根据来自database table 的数据绑定控制值。除了下拉列表值未绑定之外,文本框等所有控件都已绑定。

下面是我的代码

function BindDataTableToJSONProject(strVal) {

            var ProjectData = JSON.parse(strVal);

            var getJSONValue = ProjectData.Table[0];
            if (getJSONValue.PROJECT_MANAGER_NAME != "" && getJSONValue.PROJECT_MANAGER_NAME != null) {
                $('#ContentPlaceHolder1_ddlProjMan').val(getJSONValue.PROJECT_MANAGER_NAME);
            }
        }
    </script>
<select name="ctl00$ContentPlaceHolder1$ddlProjMan" id="ContentPlaceHolder1_ddlProjMan" class="form-control">
    <option value="0">--Select--</option>
    <option value="1">ABC</option>
    <option value="2">PQR</option>
    <option value="3">XYZ</option>
</select>

下面是我的 json 数据。

{ID: 6, MST_ID: 107, PROJECT_NO: "R4G-25-APD-210", CR_NO: "R4G-25-APD-ACR-1212", APPLICATION_NAME: "Workflow for VSAT Application", PROJECT_MANAGER_NAME: "XYZ",  …}

【问题讨论】:

    标签: javascript jquery asp.net json ajax


    【解决方案1】:

    一种方法是循环遍历 select 标记内的 options,然后检查 .text() 是否等于 PROJECT_MANAGER_NAME,如果是,则将 selected true 添加到该选项。

    演示代码

    var getJSONValue = {
      "ID": 6,
      "MST_ID": 107,
      "PROJECT_NO": "R4G-25-APD-210",
      "CR_NO": "R4G-25-APD-ACR-1212",
      "APPLICATION_NAME": "Workflow for VSAT Application",
      "PROJECT_MANAGER_NAME": "XYZ"
    }
    BindDataTableToJSONProject();
    
    function BindDataTableToJSONProject() {
      if (getJSONValue.PROJECT_MANAGER_NAME != "" && getJSONValue.PROJECT_MANAGER_NAME != null) {
        //loop through option
        $('#ContentPlaceHolder1_ddlProjMan option').each(function() {
          //get text of option check if equal to pmn
          if ($(this).text() == getJSONValue.PROJECT_MANAGER_NAME) {
            $(this).prop("selected", true) //set slectd true
          }
        })
    
      }
    }
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <select name="ctl00$ContentPlaceHolder1$ddlProjMan" id="ContentPlaceHolder1_ddlProjMan" class="form-control">
      <option value="0">--Select--</option>
      <option value="1">ABC</option>
      <option value="2">PQR</option>
      <option value="3">XYZ</option>
    </select>

    【讨论】:

    • 嘿斯瓦蒂,感谢您的回答.. 成功了..!!!
    【解决方案2】:

    您尝试设置值(即3&lt;option value="3"&gt;XYZ&lt;/option&gt;

    但是你选择了文字getJSONValue.PROJECT_MANAGER_NAME == "XYZ"的参数

    【讨论】:

    • 当我尝试使用$('#ContentPlaceHolder1_ddlProjMan').text(getJSONValue.PROJECT_MANAGER_NAME); 时,整个下拉列表变得清晰。!!
    • 因为.text是改变下拉列表框的全文
    • @hub 我正在寻找,通常我知道它的价值 - 从我所看到的来看它并不那么容易
    • @hud 我认为您必须找到其他更好的解决方案来了解 select 上的值 - 发送 jSon 数据上的值
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-22
    • 1970-01-01
    • 1970-01-01
    • 2010-10-06
    相关资源
    最近更新 更多