javascript - 动态下载数据并设置为 DevExtreme TextBox
问题描述
情况描述:
我有选择框,我在那里选择一个人(在那里,我从数据库下载整个员工列表)。我还有两个字段(我想输入其他列(同一行)的值(该员工的数据))
控制器
using AppEcp.Models;
using DevExtreme.AspNet.Data;
using DevExtreme.AspNet.Mvc;
using Microsoft.AspNetCore.Mvc;
using System.Linq;
namespace AppEcp.Controllers
{
public class UzytkownicyController : Controller
{
private readonly UzytkownicyDbContext _uzytkownicyContext;
public UzytkownicyController(UzytkownicyDbContext uzytkownicyContext)
{
_uzytkownicyContext = uzytkownicyContext;
}
public IActionResult GetItems(DataSourceLoadOptions loadOptions)
{
var GetMethod = _uzytkownicyContext.Uzytkownicy.Where(i => i.Firma == "Pekao Leasing").Select(i => new
{
i.Id,
i.Nazwa,
i.Departament,
i.Login
});
return Json(DataSourceLoader.Load(GetMethod, loadOptions));
}
[HttpGet]
public ActionResult GetDepartmentAndManager(string nazwaValue)
{
var danePracownika = _uzytkownicyContext.Uzytkownicy.Where(x => x.Nazwa == nazwaValue).Select(s => new
{
UserDepartament = s.Departament,
UserManager = s.Manager
});
return Json(danePracownika);
}
}
}
我试过了:
cshtml页面
@(Html
.DevExtreme()
.SelectBox()
.ID("Id_name")
.DataSource(d => d
.Mvc()
.Controller("Uzytkownicy")
.Key("Id")
.LoadAction("GetItems")
)
.DisplayExpr("Nazwa")
.ValueExpr("Id")
.SearchEnabled(true)
.OnValueChanged("getDepAndMan")
)
@(Html.DevExtreme().TextBox()
.ID("Id_department"))
@(Html.DevExtreme().TextBox()
.ID("Id_manager"))
<script type="text/javascript">
function getDepAndMan() {
var nazwaValue = document.getElementById("Id_name").value;
$.ajax({
type: "GET",
url: '@Url.Action("GetDepartmentAndManager", "Uzytkownicy")',
contentType: 'application/json; charset=utf-8',
data: { nazwaValue : nazwaValue},
dataType: "json",
success: function (data) {
document.getElementById("Id_department").value = (data.UserDepartament);
document.getElementById("Id_manager").value = (data.UserManager);
},
error: function () {
alert("bad code noob");
}
});
}
</script>```
不工作: 代码没有抛出错误,但是没有将下载的数据输入到文本框中
解决方案
使用其“选项” api 访问所需的小部件(请参阅此演示),例如:
success: function (data) {
alert(data.UserDepartament + " " + data.UserManager);
//document.getElementById("Id_department").value = (data.UserDepartament);
//document.getElementById("Id_manager").value = (data.UserManager);
$("#Id_department").dxTextBox("instance").option("value", data.UserDepartament);
$("#Id_manager").dxTextBox("instance").option("value", data.UserManager);
}
推荐阅读
- java - 检查数组列表是否包含两个字符串
- python - 多重激活环境?
- java - 如何设置 RestTemplate 以重试某些响应状态代码的调用?
- asp.net - 在 web.config 中访问域以 root 的规则
- python - 如何将线程概念用于我的 update() 函数而不是 root。after() ,这样它就不会干扰 tkinter 窗口
- flutter - Firestore 在颤动中为不同的文档发送相同的图像
- c# - 图像opencvsharp中的阈值深度距离c#intel realsense
- system.reactive - Rx.Net - 订阅 Cold Observable 时,发布方法缺少前几项
- javascript - 在刷新中格式化日期和时间
- javascript - 如何在两个详细信息元素上设置属性和删除属性?