适用于 MVC 5 模型的 Typeahead.js

2023-11-29

我刚刚使用 MVC 5 模型包装器的 Typeahead.js 实现了 typeahead 功能

http://timdwilson.github.io/typeahead-mvc-model/

一切正常,但我只是不知道如何设置建议下拉列表中显示的项目数量限制。 javascript 是这样的

$('#scrollable-dropdown-menu .typeahead').typeahead(null, {
  name: 'countries',
  limit: 10, -----> limit set here
  source: countries
});

但我看不到 mvc 模型包装器如何实现这一点,有三个重载,其中之一具有“AdditionalViewdata”,也许这就是所需要的?我找不到任何文档,而且似乎没有其他人这样做过(看起来下拉列表中默认为 5)我的后端机制返回超过 5 个结果,它只是没有反映在 html 中

@Html.AutocompleteFor(model => model.Organisation.Org, model => model.Organisation.ORGID, "Autocomplete", "Organisation", false, new { htmlAttributes = new { @class = "form-control" } })

有人可以帮忙吗?


关键是使用linq“Take”

这有效:1)在控制器中创建一个操作并设置 RouteConfig 来启动该操作

public class HomeController : Controller
{
    public ActionResult Index20()
    {
        MyViewModel m = new MyViewModel();
        return View(m);
    }

创建没有任何类型母版页的视图 添加此视图模型:

public class MyViewModel
{
    public string SourceCaseNumber { get; set; }
}

转到管理 Nuget 包或 PM 控制台并添加到 MVC 5 项目 - Typeahead.js for MVC 5 Models by Tim Wilson 将添加的 HtmlHelpers.cs 的命名空间更改为 System.Web.Mvc.Html 并重建 添加这个类:

public class CasesNorm
{
    public string SCN { get; set; }
}

将这些方法添加到您的控制器中:

private List<Autocomplete> _AutocompleteSourceCaseNumber(string query)
    {
        List<Autocomplete> sourceCaseNumbers = new List<Autocomplete>();
        try
        {
            //You will goto your Database for CasesNorm, but if will doit shorthand here

            //var results = db.CasesNorms.Where(p => p.SourceCaseNumber.Contains(query)).
            //    GroupBy(item => new { SCN = item.SourceCaseNumber }).
            //    Select(group => new { SCN = group.Key.SCN }).
            //    OrderBy(item => item.SCN).
            //    Take(10).ToList();   //take 10 is important

            CasesNorm c1 = new CasesNorm { SCN = "11111111"};
            CasesNorm c2 = new CasesNorm { SCN = "22222222"};
            IList<CasesNorm> aList = new List<CasesNorm>();
            aList.Add(c1);
            aList.Add(c2);
            var results = aList;

            foreach (var r in results)
            {
                // create objects
                Autocomplete sourceCaseNumber = new Autocomplete();

                sourceCaseNumber.Name = string.Format("{0}", r.SCN);
                sourceCaseNumber.Id = Int32.Parse(r.SCN);
                sourceCaseNumbers.Add(sourceCaseNumber);
            }
        }
        catch (EntityCommandExecutionException eceex)
        {
            if (eceex.InnerException != null)
            {
                throw eceex.InnerException;
            }
            throw;
        }
        catch
        {
            throw;
        }
        return sourceCaseNumbers;
    }

    public ActionResult AutocompleteSourceCaseNumber(string query)
    {
        return Json(_AutocompleteSourceCaseNumber(query), JsonRequestBehavior.AllowGet);
    }

     throw;
    }
    catch
    {
        throw;
    }
    return sourceCaseNumbers;
}

public ActionResult AutocompleteSourceCaseNumber(string query)
{
    return Json(_AutocompleteSourceCaseNumber(query), JsonRequestBehavior.AllowGet);
}

信用归于http://timdwilson.github.io/typeahead-mvc-model/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

适用于 MVC 5 模型的 Typeahead.js 的相关文章

随机推荐

  • PostgreSQL 中如何获取下一个序列值?

    目前 我在查找该列的下一个序列值时遇到问题 The my list表是由创建的 CREATE SEQUENCE my list id seq CREATE TABLE IF NOT EXISTS my list id int PRIMARY
  • 更改 recyclerview 的所有项目中视图的可见性

    我的 recyclerview 项目中有一个复选框 其可见性消失 当我长按其中一项时 我想让它对 recyclerview 中的所有项目都可见 所以我这样做了 holder faviorateVideoItemRelative setOnL
  • 启用 JMX 的 Tomcat7 打开 2 个额外的随机监听端口

    我在Centos6上使用JDK7运行Tomcat7 我使用以下选项启用 JMX CATALINA OPTS CATALINA OPTS Dcom sun management jmxremote Dcom sun management jm
  • 更改 SQLAlchemy 的 Session.delete() 行为

    是否有任何配置可能性delete SQLAlchemy的方法Sessions 我希望在数据库中用已删除标志标记相应的对象 而不是从中删除 有办法实现这一点吗 目的是构建一个没有破坏性更新的数据库 同时又不失去 SQLAlchemy 级联功能
  • 如何在shell中建立if条件来检查curl是否成功?

    我正在 Linux 中运行 cURL 命令 该命令返回 200 curl sL w http code http google com o dev null 但是 如果我运行如下所示的相同内容 我会得到 失败 作为输出 if curl sL
  • Java 服务器的 JSON 格式

    我正在尝试使用 gson 将 JSON 字符串读取到 Java 程序中 在下面的示例代码中 Java 程序有 3 个对象类 json 字符串中的数据将具有每个类的可变数量的对象实例 我尝试创建一个示例 JSON 来解析 但在解析各种对象时遇
  • 一次对 n 行分组数据框应用自定义函数

    用户定义的函数 CollageImage lt function path country strain assay subgroup img out lt magick image read path gt magick image tr
  • HangFire 重复任务数据

    我正在编写 MVC 5 互联网应用程序并正在使用HangFire用于重复性任务 如果我有每月重复任务 如何获取下一次执行时间的值 这是我的重复任务的代码 RecurringJob AddOrUpdate AccountMonthlyActi
  • 为什么我的输出没有被赋值?

    我正在为一个更大项目的一部分开发解码器 我有两个计数器充当该模块的输入 其中一个计数器计数 0 15 另一个计数器在第一个计数器达到 15 时递增一次 根据计数器的值 解码器输出不同的值 通常它是 0 1 或 1 但有时它必须是 0 707
  • 如何将 BufferedImage 转换为某种颜色?

    具体来说 我的图像都是透明的纯黑色 我想在绘制图像时为图像分配任意颜色 以便黑色区域更改为新颜色 我尝试使用 RGBImageFilter 它只返回我想要的颜色 但出了问题并且根本没有绘制任何内容 ColourFilter 扩展了 RGBI
  • TableView 中具有多个部分的正确 indexPath.row 选择?

    我有多个部分的表视图 每个部分都有不同的行数 当我选择特定部分中的特定行时 如何找到正确的indexPath row 有教程吗 我不知道你所说的 正确 是什么意思 这indexPath row始终是该部分的本地变量 这意味着 section
  • 在 AJAX 加载的页面中使用 fancybox

    我在这个组中搜索并四处搜索 但仍然没有找到答案 我还看到有些人有我的问题 但线程没有帮助 所以我在这里 这个问题很简单 为了帮助你 我打包了一个 zip 其中包含 您可以测试的文件 http www ivanhalen com fancyp
  • 使用 Linq to Entities 插入现有行的副本 [关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 我正在使用实体框架 我有一个带有自动生成的主键的表以及与其他主数据表的许多外键关系 我们需要一个复制功能 其中我们可以从表中选择任何现有行并将其作为副本插入到同一个表中 我需要复制所
  • 来自 Makefile 子目录的源代码

    我有一个使用 Makefile 构建的 C 库 直到最近 所有源代码都在一个目录中 并且 Makefile 做了类似的事情 SOURCES wildcard cpp 效果很好 现在我添加了一些位于子目录中的源 例如subdir 我知道我能做
  • 使用 dplyr 更改第一行 group_by 主题 ID 的变量值

    超过 2 000 个科目 我想按主题将每个第一行的 time2 值更改为 0 例如 ID 2 主题的第一行的 time2 为 1 考虑到 2k 科目 如何将其更改为 0 ID time1 time2 1 0 0 1 0 1 1 1 5 2
  • 如何通过单击取消选中单选按钮?

    与复选框不同 单选按钮一旦被单击 用户就无法取消选择 有什么方法可以使用 Javascript 以编程方式切换它们吗 最好不使用 jQuery 您可以设置 HTML 对象的属性checked to false像这样 document get
  • 如何在构建时始终运行命令而不考虑任何依赖项?

    我想运行一个解析整个源代码树的 cmake 命令 因此我无法列出 cmake 的 add custom command add custom target 命令中所有可能的依赖项 是否可以告诉 cmake 不带任何条件地运行命令 我尝试了在
  • 运动事件问题

    我想知道如何获得 MotionEvent 的准确 get x 和 get y 值 发生的情况是 当我触摸屏幕上的特定区域时 我会告诉要发生一个动作 问题是 一旦我触摸屏幕并将手指移开 它仍然认为我的手指位于同一位置 因为这是我最后触摸的位置
  • 如何在网格布局中显示二维数组

    I have Array myArray new Array 5 5 or Array myArray new Array 7 9 or new Array 12 13 我想将数组显示在GridLayout 我找到了很多例子 但没有二维数组
  • 适用于 MVC 5 模型的 Typeahead.js

    我刚刚使用 MVC 5 模型包装器的 Typeahead js 实现了 typeahead 功能 http timdwilson github io typeahead mvc model 一切正常 但我只是不知道如何设置建议下拉列表中显示