2013-08-01 155 views
0

任何人都可以用下面的幫助:jQuery的綁定值HTML選擇標籤

我有一個調用服務器端代碼和檢索書籍和負荷列表到HTML表格的AJAX方法。

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

     } 
} 

如何將字段狀態'(data [i] .Status)值從數據庫綁定到選擇標記。用戶可以切換此值,但默認值應綁定到數據庫中的值。提前致謝。

+1

你真的需要重新思考你是如何做這件事的,它太雜亂了,你不應該用JS這樣寫出如此多的html。考慮一個使用模板和模板渲染的MVC方法 –

+0

這不是一個好方法,但是你可以用你的狀態來測試'data [i] .Status'並將'selected'設置爲'select' – Daniele

+0

你是什麼意思的「綁定選擇標籤「?你的意思是,將它與某些東西連接填充 ?修改它?目前尚不清楚。 – 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>" 
    ... 
}