如何隐藏 MVC/Kendo UI 选项卡条上的单个选项卡?
我想根据条件隐藏选项卡。 我的 jQuery 代码是这样的:
//authUser is a hidden input whose value is set in the controller and passed into the view
if ($('#authUser').val() == 'False') //hide the last tab
{
$($("#tabstrip").data("kendoTabStrip").items()[6]).attr("style", "display:none");
}
当我运行代码时,如果 authUser 为 False,则在执行的代码行上出现以下错误:
JavaScript 运行时错误:无法获取未定义或空引用的属性“items”
想法?
“items”未定义这一事实意味着您一开始就没有正确选择选项卡条。您的 CSS 选择器是错误的(您确定将其命名为 tabstrip 吗?)或者您没有正确遵循 Kendo 方法名称。
以下是我发现的两种隐藏最后一个选项卡的方法:
隐藏最后一个选项卡条元素
var tabStrip = $("#tabstrip").kendoTabStrip().data("kendoTabStrip");
//Find the last tab item's index from the items list
var lastIndex = tabStrip.items().length - 1;
//Use jQuery's hide method on the element
$(tabStrip.items()[lastIndex]).hide();
使用Kendo的tabstrip移除方法
我认为以下更合适。为什么不使用 tabstrip 的删除方法并将其从 DOM 中完全删除,因为用户无论如何都不应该具有访问权限?
var tabStrip = $("#tabstrip").kendoTabStrip().data("kendoTabStrip");
tabStrip.remove("li:last");
我就是个傻子…… 我又看了一些代码,我遗漏了 kendoTabStrip() 这个词(粗体)来自
$($("#tabstrip").kendoTabstrip().data("kendoTabStrip").items()[6]).attr("样式","显示:无")
即 而不是(正确地)拥有:
$($("#tabstrip").kendoTabStrip().data("kendoTabStrip").items()[6]).attr("style","display:none")
我有:
$($("#tabstrip").data("kendoTabStrip").items()[6]).attr("style","display:none")
德鲁,谢谢你的努力。 有时我只需要把头撞在墙上,直到我看到自己做了什么。
我无法在任何一个答案上获取隐藏当前版本中选项卡的代码。 这应该是未来的证明:
首先使用 htmlAttributes 为您的选项卡分配一个可定位的 ID
tabstrip.Add().Text("tab text").HtmlAttributes(new { id="myTabName"}).Content(@<text>
然后用 jquery 隐藏或显示它。
$("#myTabName").hide() //or .show() or .toggle(visible)