2013-08-01 121 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>" 
    ... 
}