C# MVC 填充数据表中的下拉列表组
C# MVC Populate group of dropdown lists in datatable
所以我使用 jquery.dataTables.js 显示大约一千行,而一次只显示大约二十行。问题在于每一行的下拉列表大约需要 10 秒才能加载页面,并在加载时显示更多记录。我想过在使用 ajax 加载页面后执行此操作,但不确定如何使用所有这些干净利落地执行此操作。任何想法。
@for (int i = 0; i < Model.billVersion.Count; i++)
{<tr>
<td>@Html.DisplayFor(model => model.billVersion[i].billNumber)@Html.HiddenFor(model => model.billVersion[i].billNumber)</td>
<td>@Html.DisplayFor(model => model.billVersion[i].lrNumber)</td>
<td>@Html.DisplayFor(model => model.billVersion[i].previousYear)</td>
<td>@Html.DisplayFor(model => model.billVersion[i].committeeRec)</td>
<td>@Html.DropDownListFor(model => model.billVersion[i].committeeID, @Model.committeDropDown, "")</td>
<td>@Html.CheckBoxFor(model => model.billVersion[i].save_Remove)</td>
</tr>
}
Jquery UI 自动完成的应用程序:
!function ($) {
var cache = {};
$("[data-options]").each(constructAjaxOptions);
function constructAjaxOptions() {
var el = $(this),
acEl = $(el.clone(false)),
url = el.attr('data-options'),
initialLabel = el.attr('data-initial-label') || el.val(),
myCache = cache[url];
if (!myCache) {
myCache = cache[url] = {};
}
el.hide();
acEl
.removeAttr('id').removeAttr('name')
.val(initialLabel)
.insertAfter(el)
.autocomplete({
autoFocus: true,
minLength: 0,
source: function (request, response) {
var term = request.term;
if (term in myCache) {
response(myCache[term]);
return;
}
$.getJSON(url, request, function (data, status, xhr) {
myCache[term] = data;
response(data);
});
},
focus: function (event, ui) {
// Overridden to keep the value of the field
// from flashing in the textbox.
return false;
},
select: function (event, ui) {
acEl.val(ui.item.label);
el.val(ui.item.value);
return false;
}
});
}
}(jQuery);
.cshtml
<input type="text" id="@Html.IdFor(model => model.billVersion[i].committeeID)" name="@Html.NameFor(model => model.billVersion[i].committeeID)" value="@Value"
data-options="@Url.Action("BillVersions", "Options")" data-initial-label="@model => model.billVersion[i].commiteeName" />
在 MVC 操作中:
var model = billVersions.Select(o => new
{
value = o.committeeID,
label = o.commiteeName
})
.ToList();
return new JsonResult { JsonRequestBehavior = JsonRequestBehavior.AllowGet, Data = model };
相关文章:
- jQuery表单添加不适用于下拉列表
- 无法使用下拉列表检索表行中的输入值,但可以检索下拉值
- 在Moqui中,如何在html.ftl中加载数据库表数据作为下拉列表
- 如何从下拉列表中填写表单数据
- 如何根据选择下拉列表从表单重定向到 URL
- 如何在从服务器获取数据的动态表的每一行中添加下拉列表
- jQuery通过下拉列表更改表行中的文本字段
- 仅当选择特殊值时,才提交有关更改下拉列表的表单
- 保留下拉列表的表单值
- Codeigniter/jQuery:将值从选择下拉列表提取到数据表中时出现问题
- C# MVC 填充数据表中的下拉列表组
- 具有可选行和下拉列表的数据表
- 单击按钮时,将新行添加到包含下拉列表的表中
- 在html表的foreach绑定中,是否有可能将数据绑定到一个带有knockout的select下拉列表?
- 从两个依赖的下拉列表中获取表单数据到php
- 使用Javascript更改下拉列表数据
- 使用2个下拉列表创建2个并排的表行来比较数据- JSON
- 如何在执行内联编辑时在数据表中显示包含值的下拉列表
- 在ASP.NET MVC中使用Jquery基于所选下拉列表更新表
- 如何在回发后保留下拉列表数据