2013-08-01 5 views
0

кто может помочь со следующим:JQuery значение привязки к HTML выберите тег

У меня есть метод, который вызывает Ajax на стороне сервера код и извлекает список книг и нагрузок в HTML таблицу.

function LoadData(data) { 

    var tbody = $("#accountTable > tbody").html(""); 
    var thead = $("#accountTable > thead").html(""); 

    var rowHead = "<tr>" 
       + "<th style='border-bottom-style:dotted;border-bottom-width:1px;font-size:10px'>Name</th>" 
       + "<th style='border-bottom-style:dotted;border-bottom-width:1px;font-size:10px'>Quantity</th>" 
       + "<th style='border-bottom-style:dotted;border-bottom-width:1px;font-size:10px'>Price</th>" 
       + "<th style='border-bottom-style:dotted;border-bottom-width:1px;font-size:10px'>Status</th>" 
       + "</tr>"; 
    $(rowHead).appendTo(thead); 

    // ASP.NET encapsulates JSON responses in a property "d" 
    if (data.hasOwnProperty("d")) 
    { 
     data = data.d;  
    } 

    //iterate through and append to table 
    for (i = 0; i < data.length; i++) { 
    var rowText = "<tr><td style='text-align: left;font-size:10px;'>" + data[i].Name 
     + "</td><td style='text-align: left;font-size:10px;'>" + data[i].Quantity 
     + "</td><td style='text-align: left;font-size:10px;'>" + data[i].Price 
     + "</td><td style='text-align: left;font-size:10px;'>" 
     + "<select id=" + data[i].Id + ">" 
     + "<option value='Unconfirmed'>UnConfirmed</option>" 
     + "<option value='Confirmed'>Confirmed</option>" 
     + "<option value='Suspend'>Suspend</option>" 
     + "</select></td></tr>"; 
     $(rowText).appendTo(tbody); 

     } 
} 

Как связать поле состояния ([я] данных .status) значение из базы данных для выбора тега. Пользователь может переключить это значение, но значение по умолчанию должно привязываться к значению из базы данных. Заранее спасибо.

+1

Вам действительно нужно переосмыслить, как вы это делаете, это так беспорядочно, вы не должны так много писать html с JS. Рассмотрим подход MVC с использованием шаблона и рендеринга шаблона –

+0

Это нехороший подход, но вы можете проверить 'data [i] .Status' с вашими статусами и установить' selected' в 'select' – Daniele

+0

. Что вы подразумеваете под« привязкой » select tag "? Вы имеете в виду, что-то связать? Заполните ? изменить его? Не ясно. – TCHdvlp

ответ

1

Прямой вперед способ сделать это, чтобы сделать это.

+ "<option value='Unconfirmed'"+(data[i].Status == "Unconfirmed"?" selected":"")+">UnConfirmed</option>" 
    + "<option value='Confirmed'"+(data[i].Status == "Confirmed"?" selected":"")+">Confirmed</option>" 
    + "<option value='Suspend'"+(data[i].Status == "Suspend"?" selected":"")+">Suspend</option>" 
+0

Спасибо! это сработало для меня. – alpha

1

Замените соответствующую часть вашего кода с чем-то вроде этого (если я понять вашу потребность правильно):

for (i=0;i<data.length;i++) { 
    var options = {"unconfirmed":"","confirmed":"","suspend":""}; 
    options[data[i].Status] = "selected"; 
    ... 
    + "<option value='Unconfirmed' "+options.unconfirmed+">UnConfirmed</option>" 
    + "<option value='Confirmed' "+options.confirmed+">Confirmed</option>" 
    + "<option value='Suspend' "+options.suspend+">Suspend</option>" 
    ... 
} 
Смежные вопросы