代码之家  ›  专栏  ›  技术社区  ›  paprykarz

Kendo MVC在下拉列表中加入了文本

  •  1
  • paprykarz  · 技术社区  · 6 年前

    我在肯多有几个下拉列表,是过滤器。我得到了loglevel(翻译后的typ),它是枚举,在一个网格中,我将其显示为图标,当我鼠标悬停时,我可以读取标题:

    列日志级别代码:

    columns.bound(c=>c.loglevel)
    .clienttemplate(@“<span#
    if(loglevel=“+(int)eactivityloglevel.default+”)style='color:\\ 000000'class='fas fa info'title='default'”+
    “else if(loglevel=”+(int)eactivityloglevel.information+“)style='color:\\ 1BA1E2'class='fas fa info circle'title='information'”+
    “else if(loglevel=”+(int)eactivityloglevel.success+“)style='color:\\ 00ff33'class='fas fa check circle'title='success'”+
    “else if(loglevel=”+(int)eactivityloglevel.contentChange+“)style='color:\\ 6666CC'class='fas fa exchange alt'title='content change'”+
    “else if(loglevel=”+(int)eactivityloglevel.warning+“)style='color:\\ ffcc00'class='fas fa感叹三角形'title='warning'”+
    “else if(loglevel=”+(int)eactivityloglevel.error+“)style='color:\\ e51400'class='fas fa感叹号circle'title='error'”+
    “else if(loglevel=”+(int)eactivityloglevel.criticalError+“)style='color:\\ 990033'class='fas fa感叹号circle'title='critical error'”+
    “></span>”)
    宽度(100)
    .htmlattributes(new@class=“text center”);
    < /代码> 
    
    

    “我的筛选器”下拉列表位于页面顶部,看起来像:

    我在控制器中下拉如下:

    var loglevelist=enum.getValues(typeof(eactivityloglevel))。cast<eactivityloglevel>();
    filtervm.availableloglevel=日志级别列表
    .select(i=>新建selectListItem
    {
    text=t(i.getDisplayName()),
    值=(int)i).ToString()
    })
    < /代码> 
    
    

    是否可以像在网格中一样在下拉列表中设置文本(我的意思是图标和文本)?在网格中,我可以使用clienttemplate,但不知道如何在创建下拉列表时执行此操作鼠标悬停时的标题:

    enter image description here

    列日志级别代码:

    columns.Bound(c => c.LogLevel)
           .ClientTemplate(@"<span #
           if (LogLevel == " + (int)EActivityLogLevel.Default + ") { # style='color: \\#000000' class='fas fa-info' title='Default' # } " +
           "else if (LogLevel == " + (int)EActivityLogLevel.Information + ") { # style='color: \\#1BA1E2' class='fas fa-info-circle' title='Information' # } " +
           "else if (LogLevel == " + (int)EActivityLogLevel.Success + ") { # style='color: \\#00FF33' class='fas fa-check-circle' title='Success' # } " +
           "else if (LogLevel == " + (int)EActivityLogLevel.ContentChange + ") { # style='color: \\#6666CC' class='fas fa-exchange-alt' title='Content change' # }" +
           "else if (LogLevel == " + (int)EActivityLogLevel.Warning + ") { # style='color: \\#FFCC00' class='fas fa-exclamation-triangle' title='Warning' # } " +
           "else if (LogLevel == " + (int)EActivityLogLevel.Error + ") { # style='color: \\#E51400' class='fas fa-exclamation-circle' title='Error' # } " +
           "else if (LogLevel == " + (int)EActivityLogLevel.CriticalError + ") { # style='color: \\#990033' class='fas fa-exclamation-circle' title='Critical error' # }" +
           "#></span>")
           .Width(100)
           .HtmlAttributes(new { @class = "text-center" });
    

    我的过滤器下拉列表位于页面顶部,如下所示:

    enter image description here

    我在控制器中下拉如下:

    var logLevelList = Enum.GetValues(typeof(EActivityLogLevel)).Cast<EActivityLogLevel>();
    filterVM.AvailableLogLevel = logLevelList
                .Select(i => new SelectListItem
                {
                    Text = T(i.GetDisplayName()),
                    Value = ((int)i).ToString()
                }).ToList();
    

    是否可以像在网格中一样在下拉列表中设置文本(我的意思是图标和文本)?在网格中,我可以使用clienttemplate,但不知道如何在创建下拉列表时执行此操作

    1 回复  |  直到 6 年前
        1
  •  1
  •   DontVoteMeDown    6 年前

    当然,你可以尝试使用 Template , FooterTemplate HeaderTemplate 像这样 Demo ValueTemplate 在另一个参考文献中。我现在不能测试它们,但我相信其中一个会对你有用。