2017-10-06 54 views
0
function DisplayADSearchResults(result) { 
     var table = "<table id='myTable'>" + 
     "<tr>" + 
     "<th style='width:20px;'>&nbsp;</th>" + 
     "<th style='width:100px;'><b>First Name</b></th>" + 
     "<th style='width:100px;'><b>Last Name</b></th>" + 
     "<th style='width:200px;'><b>Email</b></th>" + 
     "<th style='width:200px;'><b>Login Name</b></th>" + 
     "<th style='width:200px;'><b>Role</b></th>" + 
     "</tr>"; 
    for (var counter = 0; counter < result.length; counter++) { 
     var chkId = 'chkUserSearch' + counter; 
     var fId = 'fUserSearch' + counter; 
     var lId = 'lUserSearch' + counter; 
     var eId = 'eUserSearch' + counter; 
     var unid = 'unUserSearch' + counter; 

      var myData = "<tr>" + 
      "<td><input type='checkbox' id='" + chkId + "' /></td>" + 
      "<td id='" + fId + "' class='searchFirstName'>" + result[counter].FirstName + "</td>" + 
      "<td id='" + lId + "' class='searchLastName'>" + result[counter].LastName + "</td>" + 
      "<td id='" + eId + "' class='searchEmail'>" + result[counter].EmailAddress + "</td>" + 
      "<td id='" + unid + "' class='searchUn'>" + result[counter].LoginName + "</td>" + 
      "<td id='" + unid + "' class='searchUn'>" + ddlStaffCategory + "</td>" + //i want do display my "ddlStaffCategory" drop dropdownlist in this column. 
      "</tr>"; 
     table += myData; 
    } 
    table += "</table>";} 

我有上述功能,正在使用从搜索结果动态创建一个html表。在我的剃须刀视图中,我有一个已经创建并填充了值的下拉列表。如何复制或插入下拉列表到html表列

是否有人知道我可以如何在每张表格的最后一列中显示该dropdownlist?

以下是下拉列表源文件。

@Html.DropDownList("ddlStaffCategory", new SelectList(ViewBag.CategoryList as System.Collections.IEnumerable, "Value", "Text"), new { @class = "form-control form-control-dropdown-medium" }) 

UPDATE

我已经试过@ ADyson的建议如下图所示(最后2列),但只是打印的HTML作为纯文本而不是作为一个下拉列表控制

var searchData = "<tr>" + 
      "<td><input type='checkbox' id='" + chkId + "' /></td>" + 
      "<td id='" + dId + "' class='searchDomain'>" + userDomain + "</td>" + 
      "<td id='" + fId + "' class='searchFirstName'>" + result[counter].FirstName + "</td>" + 
      "<td id='" + lId + "' class='searchLastName'>" + result[counter].LastName + "</td>" + 
      "<td id='" + eId + "' class='searchEmail'>" + result[counter].EmailAddress + "</td>" + 
      "<td id='" + unid + "' class='searchUn'>" + result[counter].LoginName + "</td>" + 
      "<td id='" + unid + "' class='searchUn'>" + "@Html.DropDownList(\"ddlStaffCategory\", new SelectList(ViewBag.CategoryList as System.Collections.IEnumerable, \"Value\", \"Text\"), new { @class = \"form-control form-control-dropdown-medium\"})" + "</td>" + 
      "<td>@Html.DropDownList(\"ddlStaffCategory\", new SelectList(ViewBag.CategoryList as System.Collections.IEnumerable, \"Value\", \"Text\"), new { @class = \"form-control form-control-dropdown-medium\"})</td>" + 
      "</tr>"; 
+1

你可以简单地串联剃刀的HtmlHelper代码到你的HTML字符串。在运行时,它会评估razor语句并输出一个HTML字符串,当你的JS函数被执行时,它将形成你的表格标记的一部分,就像你已经手动将HTML写入JS函数一样。 – ADyson

回答

1

@Html.DropDownList(...)刚产生类似于:

<select id="SelectId" name="SelectName"> 
    <option value="Opt1">Option 1</option> 
    <option value="Opt2">Option2</option> 
    ... 
</select> 

把你的剃须刀帮手<td></td>内,你应该罚款

var myData = 
    "<tr>" + 
    "<td><input type='checkbox' id='" + chkId + "' /></td>" + 
    "<td id='" + fId + "' class='searchFirstName'>" + result[counter].FirstName + "</td>" + 
    "<td id='" + lId + "' class='searchLastName'>" + result[counter].LastName + "</td>" + 
    "<td id='" + eId + "' class='searchEmail'>" + result[counter].EmailAddress + "</td>" + 
    "<td id='" + unid + "' class='searchUn'>" + result[counter].LoginName + "</td>" + 
    "<td id='" + unid + "' class='searchUn'>@Html.DropDownList("ddlStaffCategory", new SelectList(ViewBag.CategoryList as System.Collections.IEnumerable, "Value", "Text"), new { @class = "form-control form-control-dropdown-medium" })</td>" + 
    "</tr>";