我试图使用剑道下拉列表,并在列表顶部提供一个空白项,以及使用模板提供多个列。
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>
你可以试试#:数据
也不要使用${}语法,它已被弃用。
你很接近;但是使用#符号告诉剑道javascript及其模板语法的开始和结束位置。试试这个:
# if (TicketTypeDescription !== undefined) { #
<span> </span>
# } else { #
<span>#: TicketTypeDescription #</span>
# } #
#可以让你在html中穿插javascript。此外,#:自动HTML编码的内容,只是在这是重要的你。否则,您可以对相同的结果使用#=
。
此外,显然您不需要span元素,但如果您想以某种方式装饰或样式化所包含的值,它们会很有帮助。
根据Telerik的回复:
问题来自optionLabel不知道数据对象的其他属性。因此,您需要设置一些值,即使是空的,以便正确工作。
因此,optionLabel需要指定如下:
optionLabel: {
TicketTypeName: " ",
TicketTypeId: "",
TicketTypeDescription: ""
}
我在JSFIDLE示例中有以下代码 问题是,当用户单击“添加新记录”时,它会添加一个新项目,其中设施名称下拉列表显示列表中的第一个项目。如果用户单击“更新”,则会保存记录,但会将设施名称清空。原因是,下拉列表中确实没有选定项目。我之所以知道这一点,是因为所选值在传递给控制器代码时为空。所以,我真的很想知道如何 不显示列表中的第一个项目,直到用户在列表中实际选择它或 将选定的项目设置为列表中的第一个
当用户在剑道的下拉列表中选择任何选项时,我将删除选项标签。在一些下拉列表中,有白色/空白空间,而不是删除的选项标签。它看起来像:屏幕 下拉代码: OnClose下拉列表: 我注意到,当并没有很多选项并且滚动被禁用时,问题并没有出现。当我有很多选项并且启用了滚动时,我想剑道需要在移除选项标签后以某种方式调整大小以固定高度
我想把剑道下拉列表加入我的表格。一切都会好的,除了一件事。当我想用默认的剑道创建工具栏“添加记录”时,我不能绑定从dropdownlist数据源获取的第一个值。 数据源工作正常。DropDownlist也很好用。如果我手动从dropDownlist中选择任何东西,一切正常。 我也试过了。除了“索引”之外,我试图手动从数据源中选择第一项。从视觉上看,它工作得很好。即使选择了第三项,但当我单击“更新”
我有一张有多个剑道下拉列表的表格。。 有了选项标签,它显示了空白选择,但是当您打开DROPPDROW列表时,它会出现任何选择“空白区”的选项。在选择了一些下拉列表的值后,我无法返回。 我知道如果我在下拉列表中放入一些文本,选项标签就会出现在下拉列表中(css与其他文本不同)。但我想保留空白。 其他解决方案是在服务器端的第一个位置添加一个记录,但我想知道是否有人有不同的解决方案。谢啦
我正在使用剑道下拉列表,我需要一个占位符的下拉列表,当我选择下拉列表时,它不应该出现在列表中。我尝试使用optionLabel,但此值显示在列表中。 我需要一个解决方案,我可以添加一个占位符,该值不应显示为下拉列表中的选项。
在我的剑道网格中,我为每一列都有kenddropDownlist。选定的项目应解析并显示模板文本 我一直在遵循这个例子http://jsfiddle.net/jddevight/Ms3nn/ 使现代化 我在这里简化了我的问题http://jsfiddle.net/BlowMan/mf434/ 问题 当我在下拉列表中选择一个项目时,它不会返回所选项目的值。它返回null。 }); 下面的视图部分 任