【问题标题】:How to Prevent Drop down to show values that is in Database如何防止下拉显示数据库中的值
【发布时间】:2013-09-04 02:12:08
【问题描述】:

我想阻止已经在数据库文件中的下拉列表的值,以便数据库中没有多个输入,

希望有人能帮我解决这个问题,

我正在使用 MVC 3 和 Kendo UI

是否可以通过 Jquery 或 Controller 中的 Linq 语句来处理它?

谢谢:)

 <span>
                @Html.DropDownList("ddlDay", new SelectList(ViewBag.DayList, "ID", "Display_Value", PersonDay), "[Please Select]",
          new Dictionary<string, object>
                {
                    {"class","validate[required] inputLong"}
                })
            </span>

这个下拉菜单显示周一到周日,我有 2 个这个下拉菜单显示可用性但我想知道,如果我保存周一到周三,周一到周三会在两个下拉菜单中被删除,

private void GetDayList()
        {
            var dayList = (from a in db.Lookups
                              where a.Domain == "DAYSTATUS"
                              select a).ToList();

            ViewBag.DayList = dayList ;
        }

【问题讨论】:

  • 请澄清您的问题。我不确定你在问什么.. Dropdown 是如何填充的?
  • 请张贴下拉列表的标记和绑定代码。
  • @Robert 问题更新
  • @KarlAnderson 问题更新
  • 好的,请发布填充ViewBag.DayList的代码。

标签: c# javascript jquery asp.net-mvc asp.net-mvc-3


【解决方案1】:

您可以通过多种方式解决此问题,这取决于您的交互方式。

您可以使用 LINQ,添加 Where() 或 except() 语句来过滤完整列表:

var fromDayList = dayList.Where(day => day.Name != selectedFromDay).ToList();
// or if multiple selected days, assuming it is of the same type:
var validDayList = dayList.Except(selectedDayList).ToList();

如果您允许他们更改客户端选择的日期并使用 AJAX(这是您通常使用 Kendo UI 的方式),那么您将不希望过滤服务器端。相反,您应该将 DayList 包装在 kendo.DataSource 中,并根据 JavaScript 中的选定日期应用过滤器。您没有提供足够的信息让我为此提供任何示例代码。

【讨论】:

  • 如何添加selectedFromDay
  • 我只能假设它是您的模型的属性,在这种情况下,您可以从控制器使用Model.SelectedFromDay。看看你在做什么,你似乎没有使用模型,只是把所有东西都扔到了 ViewBag 中。认真考虑MVC就是Model-View-Controller,一个Model很重要。
  • 我有模型,我在 Info.cs 中传递值,然后将其传递给视图。 ..
  • 如果您有模型,为什么还要使用 ViewBag?我希望您的此页面的模型至少具有以下属性(假设服务器端过滤):FromDayList、ToDayList、FromDay、ToDay,以及您输入和/或显示所需的任何其他信息。创建此模型时,它会根据需要从数据库中检索和过滤信息。
  • 那你怎么看,我需要把它包含到private void GetDayList() 吗?谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-28
  • 1970-01-01
  • 2020-10-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多