Javascript Inline Dropdownlist
本文关键字:Dropdownlist Inline Javascript | 更新日期: 2023-09-27 18:35:55
我正在MVC 5中创建内联CRUD操作,其中要添加新记录,用户将单击某个按钮,它将创建一个新的动态表行。 这是我的JavaScript代码:
function tblnewrow() {
var newrow = '<tr>' +
'<td><span class="edit-mode"><input type="text" class="form-control edit-mode" id="particular" placeholder="Enter Particular"/></span></td>' +
'<td><span class="edit-mode"><input type="text" class="form-control edit-mode" id="acctcode" placeholder="Enter Account Code" /></span></td>' +
'<td><span class="edit-mode"><input type="text" class="form-control edit-mode" id="ppmpcode" placeholder="Enter PPMP Code" /></span></td>' +
'<td><span class="edit-mode">@Html.DropDownList("Account Code", (SelectList)ViewBag.listValues, "---Select Account Code---", new { @class = "form-control edit-mode", id = "acctcode" })</span></td>' +
'<td align="center"><button class="btn btn-success edit-mode" id="saveParticular" type="submit">Save</button><button class="btn btn-danger cancel-add edit-mode">Cancel</button></td>'
$('#particularTbl tr:last').after(newrow);
};
我可以成功添加新行,但是当我添加下拉列表时,它不起作用。 我在这里做错了什么?提前感谢!
您不能在 JQ 中使用服务器帮助程序并期望在客户端正确呈现它。您将需要更换
'<td><span class="edit-mode">@Html.DropDownList("Account Code", (SelectList)ViewBag.listValues, "---Select Account Code---", new { @class = "form-control edit-mode", id = "acctcode" })</span></td>'
使用纯 HTML 代码,例如
'<td><span class="edit-mode"><select class="form-control edit-mode" id="acctcode"><option value='1'>---Select Account Code---</option></select></span></td>'
至于选项列表,您可以将值从ViewBag传递给JQ,如下所示:
var bag = "<%= ViewBag.listValues%>"
然后,您需要从中构建选项列表。
你可以
尝试使用.ToHtmlString()
@Html.DropDownList("Account Code", (SelectList)ViewBag.listValues, "---Select Account Code---", new { @class = "form-control edit-mode", id = "acctcode" }).ToHtmlString()
我尝试了类似你的东西。我的代码 -
<div id="div"></div>
<script>
window.onload = function(){
var sel = '@Html.DropDownList("List")';
document.getElementById("div").innerHTML = sel;
};
</script>
当我使用查看页面源代码时,我得到 -
<div id="div"></div>
<script>
window.onload = function(){
var sel = '<select id="List" name="List"><option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
</select>';
document.getElementById("div").innerHTML = sel;
};
</script>
如您所见,已生成选择列表,但问题是存在换行符,这使它成为无效的JavaScript字符串。 并抛出错误 -
Uncaught SyntaxError: Unexpected token ILLEGAL
我假设你的问题也是一样的。
但是如果你的浏览器支持 ECMASCript6(如最新的 chrome),你可以使用反引号,它应该可以工作。我的做到了。
var sel = `@Html.DropDownList("List")`;