当用户点击字母时,网格将仅过滤列出名称以他们选择的字母开头的项目
public ActionResult Index(string alphabeticList)
{
if (alphabeticList == null || alphabeticList == "1")
{
return View(db.Documents.ToList());
}
else if (alphabeticList == "2")
{
//TO DO
}
else if (alphabeticList == "3")
{
//TO DO
}
return View(db.Documents.ToList());
}
我该怎么办?
答案 0 :(得分:2)
可以在ASP.NET MVC中完成,并且您正在以正确的方式进行操作。我要给的一个建议是,而不是应用这么多if else条件。您可以将过滤条件放在数据模型中。例如,如果您从数据库获取数据。
将字母表传递到这样的地方
SELECT *
FROM TABLE
WHERE Column LIKE yourchar + '%'
您可以通过最初使用所有字母缓存数据并从中查询数据来获得一个性能提升
DataTable allData = (DataTable)Cache["mydata"];
var filterData = allData.Where(x => x.Name.StartWith(char));
让您的视图接受dataTable并渲染它。它可以是部分视图,它将呈现数据。
您可以将字母表列表放在表单标记内,并保留一个隐藏字段以保留选中的字母。
答案 1 :(得分:1)
最简单的方法是通过前端。您可以使用的强大工具是AngularJS。 Here's快速教程和演示您正在寻找的内容。