ASP.Net Core中如何根据选中的CompanyID自动填充分支的Company Title
ASP.NET Core Kendo Grid 编辑表单下拉框联动填充字段
针对你在分支编辑弹出表单中,选择CompanyId后自动更新CompanyCode和CompanyDescr的需求,可通过以下步骤实现:
1. 为CompanyId下拉框绑定Change事件
修改Grid编辑表单中CompanyId的表单项配置,指定下拉框数据源并绑定选择事件:
tabItems.AddSimpleFor(m => m.CompanyId) .Editor(e => e.DropDownList() .DataTextField("CompanyDescr") // 下拉框显示的公司名称字段 .DataValueField("Id") // 下拉框绑定的主键字段 .BindTo(ViewBag.Companies) // 绑定后端传递的公司数据源 .Events(ev => ev.Change("onCompanyIdChange"))); // 绑定下拉框选择事件
2. 编写前端联动逻辑
在页面中添加JavaScript函数,监听下拉框变化,获取选中的公司数据并填充对应字段:
function onCompanyIdChange(e) { // 获取当前下拉框实例及选中的数据项 var dropdown = e.sender; var selectedCompany = dropdown.dataItem(dropdown.select()); // 定位到编辑表单容器 var editForm = dropdown.closest(".k-edit-form-container"); // 填充CompanyCode和CompanyDescr字段 var companyCodeInput = editForm.find("[name='CompanyCode']"); var companyDescrInput = editForm.find("[name='CompanyDescr']"); companyCodeInput.val(selectedCompany.CompanyCode); companyDescrInput.val(selectedCompany.CompanyDescr); // 触发组件change事件,确保Kendo Grid识别值的更新 companyCodeInput.data("kendoTextBox").trigger("change"); companyDescrInput.data("kendoTextBox").trigger("change"); }
3. 后端传递公司数据源
在对应Controller的Action中,将公司数据传递到前端ViewBag:
public IActionResult YourGridAction() { // 从SQLite数据库获取公司数据,包含需要的字段 ViewBag.Companies = _context.Companies.Select(c => new { Id = c.Id, CompanyDescr = c.CompanyDescr, CompanyCode = c.CompanyCode }).ToList(); return View(); }
可选优化:设置联动字段为只读
如果不需要用户手动修改CompanyCode和CompanyDescr,可将这两个字段设置为禁用状态:
tabItems.AddSimpleFor(m => m.CompanyCode).Enabled(false); tabItems.AddSimpleFor(m => m.CompanyDescr).Enabled(false);
内容的提问来源于stack exchange,提问作者kilometer
相关产品推荐
相关产品推荐

