【问题标题】:searching the data based on the selected value from drop downlist根据下拉列表中的选定值搜索数据
【发布时间】:2014-04-21 09:55:37
【问题描述】:

如何根据从下拉列表中选择的值在网格视图中搜索数据 在 asp.net MVC 架构中?请看下面的代码:

 List<SelectListItem> monthlist = new List<SelectListItem>();
         monthlist.Add(new SelectListItem { Text = "Select Month", Value = "0" });
         monthlist.Add(new SelectListItem { Text = "1", Value = "1" });
         monthlist.Add(new SelectListItem { Text = "2", Value = "2" });
         monthlist.Add(new SelectListItem { Text = "3", Value = "3" });
         monthlist.Add(new SelectListItem { Text = "4", Value = "4" });
         monthlist.Add(new SelectListItem { Text = "5", Value = "5" });
         monthlist.Add(new SelectListItem { Text = "6", Value = "6" });
         monthlist.Add(new SelectListItem { Text = "7", Value = "7" });
         monthlist.Add(new SelectListItem { Text = "8", Value = "8" });
         monthlist.Add(new SelectListItem { Text = "9", Value = "9" });
         monthlist.Add(new SelectListItem { Text = "10", Value = "10" });
         monthlist.Add(new SelectListItem { Text = "11", Value = "11" });
         monthlist.Add(new SelectListItem { Text = "12", Value = "12" });
         ViewBag.month = monthlist;

         List<SelectListItem> yearlist = new List<SelectListItem>();
         yearlist.Add(new SelectListItem { Text = "Select Year", Value = "0" });
         yearlist.Add(new SelectListItem { Text = "2010", Value = "1" });
         yearlist.Add(new SelectListItem { Text = "2011", Value = "2" });
         yearlist.Add(new SelectListItem { Text = "2012", Value = "3" });
         yearlist.Add(new SelectListItem { Text = "2013", Value = "4" });
         yearlist.Add(new SelectListItem { Text = "2014", Value = "5" });
         yearlist.Add(new SelectListItem { Text = "2015", Value = "6" });
         yearlist.Add(new SelectListItem { Text = "2016", Value = "7" });
         yearlist.Add(new SelectListItem { Text = "2017", Value = "8" });
         yearlist.Add(new SelectListItem { Text = "2018", Value = "9" });
         yearlist.Add(new SelectListItem { Text = "2019", Value = "10" });
         yearlist.Add(new SelectListItem { Text = "2020", Value = "11" });

【问题讨论】:

标签: asp.net-mvc razor-2


【解决方案1】:

不确定是要根据下拉列表框中选择的值将数据加载到网格中,还是要过滤网格中的项目。

对于案例 1,一种方法是:

一个。创建一个控制器获取操作和相应的视图。控制器操作将返回视图,并将呈现两个带有提交按钮的组合框。用户将在每个组合框中选择值并按下提交按钮。

在下面的示例中,我传递了一个组织列表并要求用户选择一个。根据选择,我将显示所选组织的数据。

public class SelectOrganizationViewModel
{
    public int OrganizationId { get; set; }

    public IEnumerable<SelectListItem> Organizations { get; set; }
}

    public ActionResult SelectOrganizationForDataAccess()
    {
        var model = new SelectOrganizationViewModel();
        var list = this.organizationService.GetAllOrganizations();

            model.Organizations =
                list.Select(
                    o =>
                    new SelectListItem
                        {
                            Value = o.OrganizationId.ToString(CultureInfo.InvariantCulture),
                            Text = o.Name
                        });


        return View(model);
    }

b.定义 POST 操作并接收值。这些值将是所选项目的 ID。在下面的示例中,我接受模型 OrganizationId 属性中的选定值。

    [HttpPost]
    [ValidateAntiForgeryToken]
    public ActionResult SelectOrganizationForDataAccess(SelectOrganizationViewModel selectOrganizationViewModel)
    {
        return this.RedirectToAction("LoadGrid", new { organizationId = selectOrganizationViewModel.OrganizationId });
    }

c。定义一个接收选定月份和年份值的 Get 方法。根据选定的值读取要在网格中显示的数据,并将其返回到显示网格数据的视图中。

    [HttpGet]
    public ActionResult LoadGrid(string selectedMonth, string selectedYear)
    {
       // Load data to be displayed in grid
       var model = new GridViewModel();
       return View(model);
    }

对于案例 2,我使用了 Kendo Grid,它在过滤方面非常有效。在您的情况下,您仍然需要提交选定的值(您也可以发送 Ajax 请求)并加载过滤后的数据。

【讨论】:

  • 不先生.. 我的意思是,我的数据存储在数据库中,当用户单击按钮查看数据时,它将以 gridview 格式显示在页面上。现在当用户想要搜索基于数据的数据时在月份和年份,那么它应该只显示在该页面上。所以我的问题是如何根据从这两个列表中选择的值来搜索数据?提前谢谢
  • 您使用的是什么网格控件?你仍然可以使用我上面提到的结构,你可以保持单页和按下按钮,使用 ajax 发布选择。服务器将返回一个新的数据列表,您可以将其加载到网格中(刷新)。检查demos.telerik.com/kendo-ui/web/grid/index.html
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-01-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-24
  • 1970-01-01
相关资源
最近更新 更多