无法通过IE8中的$ find访问Telerik ASP.NET TabStrip客户端对象

时间:2014-11-21 08:43:19

标签: javascript jquery asp.net internet-explorer-8 tabs

我对ASP.NET不是很熟悉,但我有一个情况:

我有一个使用ASP.NET C1TabStrip C1MultiPage 控件实现的选项卡式菜单,我希望选择第一个选项卡(SelectedIndex =" 0&#34 ;)在 IE8 中加载页面。

注意:我没有服务器端访问权限(我对asp.net服务器端编码不熟悉)

以下是代码:

<cc1:TabStrip ID="TabStrip1" runat="server" MultiPageID="RadMultiPage1" SelectedIndex="0" Skin="MetroTouch" EnableViewState="true" CausesValidation="False" BorderWidth="0">
            <Tabs>
                <telerik:RadTab ID="TabInformation" runat="server" AccessKey="1" PageViewID="TabInformationPage" BorderWidth="0"></telerik:RadTab>
                <telerik:RadTab ID="TabWorkflow" runat="server" AccessKey="2" PageViewID="TabWorkflowPage" BorderWidth="0"></telerik:RadTab>
                <telerik:RadTab ID="TabApproval" runat="server" AccessKey="3" PageViewID="TabApprovalPage" BorderWidth="0"></telerik:RadTab>
            </Tabs>
        </cc1:TabStrip>

<telerik:RadMultiPage ID="RadMultiPage1" runat="server" OnPageViewCreated="RadMultiPage1_PageViewCreated" SelectedIndex="0" EnableViewState="true">

Telerik RadPageView......

</telerik:RadMultiPage>

一般情况下它运行正常(Chrome,Firefox,IE9及更高版本),但在Internet Explorer 8中加载页面时,默认情况下不会选择任何标签。

单击其中一个选项卡后,控件正常工作。

客户端

我正在尝试使用jQuery获取客户端对象,使用以下脚本:

var tabStrip = $find("<%= TabStrip1.ClientID %>");
var tabStripTab0 = tabStrip.get_tabs().getTab("0");
tabStripTab0.click();

在大多数浏览器(Chrome,Firefox,IE9及更高版本)中,tabStrip变量获取 RadTabStrip对象 ,但在IE8中它返回 null

有没有人知道如何在IE8中获取tabstrip对象?

提前致谢!

问题已解决

我只需要像这样设置超时:

window.onload = tabStripTimeOut;

function tabStripTimeOut() {
        if ($telerik.isIE8) {
            setTimeout(correctTabstripWidth, 500);
        } else {
            correctTabstripWidth();
        }
    }

function correctTabstripWidth() {
    var tabStrip = $find("<%= TabStrip1.ClientID %>");
    var tabStripTab0 = tabStrip.get_tabs().getTab("0");
    tabStripTab0.click();
}

1 个答案:

答案 0 :(得分:0)

  

我想在页面加载时选择第一个标签(SelectedIndex =&#34; 0&#34;)

如果您想在页面加载时使用它,只需在服务器端执行。

以下是http://www.telerik.com/forums/how-to-set-selected-tab---server-side

的示例
protected void Page_Load(object sender, EventArgs e)
{
     RadTab tab1 = RadTabStrip1.Tabs.FindTabByText("Tab1");
     tab1.Selected = true;
}

在您的情况下,可能有更好,更简单的方式来访问选项卡而不通过文本搜索它,但我的WebForms非常生疏;)