如何在提交包含结果数据的表单后将返回的数据绑定到 Telerik ASP.Net 核心网格
How to bind returned data to a Telerik ASP.Net Core grid after submitting a form with resulted data
我正在使用 ASP.Net Core MVC 3.1 和 EF 3.1 创建一个网络应用程序。
我添加了一个网页,使用 ASP.Net Core Telerik Grid 分批(按年级)更新学生电话号码。页面顶部有一个小表格,有一些按钮,这些按钮允许 select 您想要更新学生电话号码的年级。
单击成绩按钮后,我需要在表单控件下方的 ASP.Net Core Telerik Grid 中显示相关学生数据。
单击成绩按钮后,它 selects 并返回相关数据,但网格不显示这些数据。
所以我的问题是,我应该如何更正我的编码,以便查看返回的数据?
我的编码如下
Index.cshtml
@model School_MGT.Models.Students
<div class="container">
<div class="container">
<form asp-controller="AttendenceStudents" asp-action="Index">
<p align="center">
<input type="submit" name="btn" value="1A" />
<input type="submit" value="1B" name="btn" />
</p>
</form>
</div>
</div>
@(Html.Kendo().Grid<School_MGT.Models.Students>()
.Name("Grid")
.Columns(columns =>
{
columns.Bound(p => p.Add_No);
columns.Bound(p => p.S_Name).Width(140);
columns.Bound(p => p.Tel_H).Width(140);
})
.ToolBar(toolbar =>
{
toolbar.Create();
toolbar.Save();
})
.Editable(editable => editable.Mode(GridEditMode.InCell))
.Pageable()
.Navigatable()
.Sortable()
.Scrollable()
.Resizable(resize => resize.Columns(true))
.DataSource(dataSource => dataSource
.Ajax()
.Batch(true)
.PageSize(20)
.ServerOperation(false)
.Model(model => model.Id(p => p.Add_No))
.Update("Update", "AttendenceStudents")
)
)
AttendenceStudentsController
namespace School_MGT.Controllers
{
public class AttendenceStudentsController : Controller
{
private readonly ConnectionString _context;
public AttendenceStudentsController(ConnectionString context)
{
_context = context;
}
public IActionResult Index()
{
return View();
}
[HttpPost]
public IActionResult Index(string btn)
{
var Students = from m in _context.Students select m;
switch (btn)
{
case "1A":
Students = Students.Where(x => x.Grade == "1" && x.Class == "A");
return View();
case "1B":
Students = Students.Where(x => x.Grade == "1" && x.Class == "B");
return View();
default:
return (View());
}
}
[HttpPost]
public IActionResult Update([Bind("RowID,Add_No,S_Name")] Students target)
{
Students entity = _context.Students.FirstOrDefault((r => r.Add_No == target.Add_No));
entity.Tel_H = target.Tel_H;
_context.SaveChanges();
return View();
}
}
}
感谢所有查看我的问题并尝试回答的人。
我通过修改 Index 方法和 view.cshtml
解决了我的问题
public async Task<IActionResult> Index(string btn)
{
var Students = from m in _context.Students select m;
switch (btn)
{
case "1A":
Students = Students.Where(x => x.Grade == "1" && x.Class == "A");
return View(await Students.ToListAsync());
case "1B":
Students = Students.Where(x => x.Grade == "1" && x.Class == "B");
return View(await Students.ToListAsync());
default:
return (View(await Students.ToListAsync()));
}
}
将以下更改应用于模型和网格
@model IEnumerable<School_MGT.Models.Students>
@(Html.Kendo().Grid(Model)
我正在使用 ASP.Net Core MVC 3.1 和 EF 3.1 创建一个网络应用程序。 我添加了一个网页,使用 ASP.Net Core Telerik Grid 分批(按年级)更新学生电话号码。页面顶部有一个小表格,有一些按钮,这些按钮允许 select 您想要更新学生电话号码的年级。 单击成绩按钮后,我需要在表单控件下方的 ASP.Net Core Telerik Grid 中显示相关学生数据。 单击成绩按钮后,它 selects 并返回相关数据,但网格不显示这些数据。
所以我的问题是,我应该如何更正我的编码,以便查看返回的数据?
我的编码如下
Index.cshtml
@model School_MGT.Models.Students
<div class="container">
<div class="container">
<form asp-controller="AttendenceStudents" asp-action="Index">
<p align="center">
<input type="submit" name="btn" value="1A" />
<input type="submit" value="1B" name="btn" />
</p>
</form>
</div>
</div>
@(Html.Kendo().Grid<School_MGT.Models.Students>()
.Name("Grid")
.Columns(columns =>
{
columns.Bound(p => p.Add_No);
columns.Bound(p => p.S_Name).Width(140);
columns.Bound(p => p.Tel_H).Width(140);
})
.ToolBar(toolbar =>
{
toolbar.Create();
toolbar.Save();
})
.Editable(editable => editable.Mode(GridEditMode.InCell))
.Pageable()
.Navigatable()
.Sortable()
.Scrollable()
.Resizable(resize => resize.Columns(true))
.DataSource(dataSource => dataSource
.Ajax()
.Batch(true)
.PageSize(20)
.ServerOperation(false)
.Model(model => model.Id(p => p.Add_No))
.Update("Update", "AttendenceStudents")
)
)
AttendenceStudentsController
namespace School_MGT.Controllers
{
public class AttendenceStudentsController : Controller
{
private readonly ConnectionString _context;
public AttendenceStudentsController(ConnectionString context)
{
_context = context;
}
public IActionResult Index()
{
return View();
}
[HttpPost]
public IActionResult Index(string btn)
{
var Students = from m in _context.Students select m;
switch (btn)
{
case "1A":
Students = Students.Where(x => x.Grade == "1" && x.Class == "A");
return View();
case "1B":
Students = Students.Where(x => x.Grade == "1" && x.Class == "B");
return View();
default:
return (View());
}
}
[HttpPost]
public IActionResult Update([Bind("RowID,Add_No,S_Name")] Students target)
{
Students entity = _context.Students.FirstOrDefault((r => r.Add_No == target.Add_No));
entity.Tel_H = target.Tel_H;
_context.SaveChanges();
return View();
}
}
}
感谢所有查看我的问题并尝试回答的人。 我通过修改 Index 方法和 view.cshtml
解决了我的问题 public async Task<IActionResult> Index(string btn)
{
var Students = from m in _context.Students select m;
switch (btn)
{
case "1A":
Students = Students.Where(x => x.Grade == "1" && x.Class == "A");
return View(await Students.ToListAsync());
case "1B":
Students = Students.Where(x => x.Grade == "1" && x.Class == "B");
return View(await Students.ToListAsync());
default:
return (View(await Students.ToListAsync()));
}
}
将以下更改应用于模型和网格
@model IEnumerable<School_MGT.Models.Students>
@(Html.Kendo().Grid(Model)