如何隐藏*单个*MVC/Kendo tabstrip 选项卡?

问题描述 投票:0回答:3

如何隐藏 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”

想法?

javascript jquery kendo-ui telerik
3个回答
10
投票

“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");

2
投票

我就是个傻子…… 我又看了一些代码,我遗漏了 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") 

德鲁,谢谢你的努力。 有时我只需要把头撞在墙上,直到我看到自己做了什么。


0
投票

我无法在任何一个答案上获取隐藏当前版本中选项卡的代码。 这应该是未来的证明:
首先使用 htmlAttributes 为您的选项卡分配一个可定位的 ID

        tabstrip.Add().Text("tab text").HtmlAttributes(new { id="myTabName"}).Content(@<text>

然后用 jquery 隐藏或显示它。

$("#myTabName").hide() //or .show() or .toggle(visible)  
© www.soinside.com 2019 - 2024. All rights reserved.