Как добавить звездный знак в список на основе идентификатора - PullRequest
1 голос
/ 26 июня 2019

В моем веб-приложении Asp я использую данные JSON для заполнения списка.

часть моего JSON выглядит следующим образом,

[  
   {  
      "UserId":10259,
      "FullName":"jhno doil",
      "BID":""
   },
   {  
      "UserId":10405,
      "FullName":"Adam mark",
      "BID":"10261"
   },
   {  
      "UserId":16224,
      "FullName":"silvester",
      "BID":""
   },
   {  
      "UserId":10416,
      "FullName":"Arnetta Chatcho",
      "BID":"1"
   },
   {  
      "UserId":10244,
      "FullName":"Ashanti Bueti",
      "BID":"1000"
   }
]

используя вышеупомянутый JSON. Я заполняю список вроде этого,

function GetSupervisorComplete(result, status) {
    "use strict";
    var data = jQuery.parseJSON(result.d);
    var lstsupervisor = $("[id*=lbSupervisor]");
    lstsupervisor.empty();
    $.each(data, function () {

        lstsupervisor.append($("<option></option>").val(this['UserId']).html(this['FullName']));
    });
}

Как добавить astric mark(*) к опцииесли BID = ""?как показано ниже на изображении. Когда я нажимаю эту опцию в списке, звездочка * не может быть отображена в заполнителе.как я могу добавить * в список?

enter image description here

Ответы [ 4 ]

1 голос
/ 26 июня 2019

Вы можете взять дополнительную переменную, которая сначала найдет, нужно ли добавлять знак зодиака или нет. Вы можете сделать следующее:

function GetSupervisorComplete(result, status) {
    "use strict";
        var data = jQuery.parseJSON(result.d);
        var lstsupervisor = $("[id*=lbSupervisor]");
        lstsupervisor.empty();
        $.each(data, function () {
             var astric_style = this['BID'] == '' ? '*' : '';
             lstsupervisor.append($("<option></option>").val(this['UserId']).html(this['FullName']+astric_style));
    });
1 голос
/ 26 июня 2019

Вы можете использовать троичный, чтобы добавить * к html() на основе значения BID.

Вы также можете использовать map() для создания одного массива строк HTML. Вы можете использовать это для повышения производительности, вызывая append() только один раз. Попробуйте это:

function GetSupervisorComplete(result, status) {
  var data = jQuery.parseJSON(result.d);
  var $lstsupervisor = $("[id*=lbSupervisor]").empty();

  var html = data.map(function(o) {
    var name = o.FullName + (!o.BID ? ' *' : '');
    return `<option value="${o.UserId}">${name}</option>`;
  });
  $lstsupervisor.append(html);
}
1 голос
/ 26 июня 2019

Попробуйте это:

lstsupervisor.append($("<option></option>").val(this['UserId']).html(this['FullName'] + this['BID']?"":"*" ));
1 голос
/ 26 июня 2019

С основной троичной операцией.Изменение последней строки, как показано ниже, должно помочь.

lstsupervisor.append($("<option></option>").val(this['UserId']).html(this['FullName'] + (this['BID'] === '' ? '*' : '')));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...