当前位置: 首页 > 知识库问答 >
问题:

带有空白项的剑道下拉列表模板

呼延渝
2023-03-14

我试图使用剑道下拉列表,并在列表顶部提供一个空白项,以及使用模板提供多个列。

   var ticketType = $("#TicketType").kendoDropDownList
({

    dataTextField: "TicketTypeName",
    dataValueField: "TicketTypeId",
    optionLabel: " ", //This should add a blank item, but errors out instead.
    dataSource:
    {
        serverFiltering: true,
        type: "jsonp",
        transport:
        {
            read:
            {
                url: "../Service/IncidentManagement.asmx/GetTicketTypeList",
                contentType: "application/json; charset=utf-8",
                type: "POST"
            }
        },
        schema:
        {
            data: "d"
        }
    },
    template: "<div><span>${TicketTypeName}</span><span>${TicketTypeDescription}</span></div>"
}).data("kendoDropDownList");

以上产生

未捕获引用错误:未定义TicketType描述

如果我没有下面指定的optionLabel,则下拉列表可以正常工作(没有空项)。

如果指定了optionLabel并删除了template选项,那么它可以正常工作(没有多列)。

是否有某种方法可以检查它是否在模板中未定义?大致如下:

<span>${TicketTypeDescription} !== undefined ? ${TicketTypeDescription} : '' </span>

共有3个答案

堵恺
2023-03-14

你可以试试#:数据

也不要使用${}语法,它已被弃用。

商业
2023-03-14

你很接近;但是使用#符号告诉剑道javascript及其模板语法的开始和结束位置。试试这个:

# if (TicketTypeDescription !== undefined) { #
    <span>&nbsp;</span>
# } else { #
    <span>#: TicketTypeDescription #</span>
# } #

#可以让你在html中穿插javascript。此外,#:自动HTML编码的内容,只是在这是重要的你。否则,您可以对相同的结果使用#=

此外,显然您不需要span元素,但如果您想以某种方式装饰或样式化所包含的值,它们会很有帮助。

澹台硕
2023-03-14

根据Telerik的回复:

问题来自optionLabel不知道数据对象的其他属性。因此,您需要设置一些值,即使是空的,以便正确工作。

因此,optionLabel需要指定如下:

optionLabel: {
          TicketTypeName: " ",
          TicketTypeId: "",
          TicketTypeDescription: ""
        }
 类似资料:
  • 当用户在剑道的下拉列表中选择任何选项时,我将删除选项标签。在一些下拉列表中,有白色/空白空间,而不是删除的选项标签。它看起来像:屏幕 下拉代码: OnClose下拉列表: 我注意到,当并没有很多选项并且滚动被禁用时,问题并没有出现。当我有很多选项并且启用了滚动时,我想剑道需要在移除选项标签后以某种方式调整大小以固定高度

  • 我在JSFIDLE示例中有以下代码 问题是,当用户单击“添加新记录”时,它会添加一个新项目,其中设施名称下拉列表显示列表中的第一个项目。如果用户单击“更新”,则会保存记录,但会将设施名称清空。原因是,下拉列表中确实没有选定项目。我之所以知道这一点,是因为所选值在传递给控制器代码时为空。所以,我真的很想知道如何 不显示列表中的第一个项目,直到用户在列表中实际选择它或 将选定的项目设置为列表中的第一个

  • 我想把剑道下拉列表加入我的表格。一切都会好的,除了一件事。当我想用默认的剑道创建工具栏“添加记录”时,我不能绑定从dropdownlist数据源获取的第一个值。 数据源工作正常。DropDownlist也很好用。如果我手动从dropDownlist中选择任何东西,一切正常。 我也试过了。除了“索引”之外,我试图手动从数据源中选择第一项。从视觉上看,它工作得很好。即使选择了第三项,但当我单击“更新”

  • 我有一张有多个剑道下拉列表的表格。。 有了选项标签,它显示了空白选择,但是当您打开DROPPDROW列表时,它会出现任何选择“空白区”的选项。在选择了一些下拉列表的值后,我无法返回。 我知道如果我在下拉列表中放入一些文本,选项标签就会出现在下拉列表中(css与其他文本不同)。但我想保留空白。 其他解决方案是在服务器端的第一个位置添加一个记录,但我想知道是否有人有不同的解决方案。谢啦

  • 我正在使用剑道下拉列表,我需要一个占位符的下拉列表,当我选择下拉列表时,它不应该出现在列表中。我尝试使用optionLabel,但此值显示在列表中。 我需要一个解决方案,我可以添加一个占位符,该值不应显示为下拉列表中的选项。

  • 在我的剑道网格中,我为每一列都有kenddropDownlist。选定的项目应解析并显示模板文本 我一直在遵循这个例子http://jsfiddle.net/jddevight/Ms3nn/ 使现代化 我在这里简化了我的问题http://jsfiddle.net/BlowMan/mf434/ 问题 当我在下拉列表中选择一个项目时,它不会返回所选项目的值。它返回null。 }); 下面的视图部分 任