2011-08-29 42 views
0

我有一个包含标记和第三方控件(在这个特殊情况下是Telerik控件)的ASP.NET页面,例如输出标记和控制依赖于Javascript函数的结果

<h1>Hello</h1> 

<telerik:RadToolBar ID="toolbarCAD" runat="server" Skin="Web20" Height="30px" Width="300px" OnClientButtonClicked="OnClientButtonClicked"> 
    <Items> 
     <telerik:RadToolBarButton runat="server" Text="Zoom In" ImageUrl="~/images/zoom_in.png" Value="cadZoomIn"> 
        </telerik:RadToolBarButton> 
    </Items> 
</telerik:RadToolBar> 

我只想在安装ActiveX控件时显示此内容。从另一个问题,我有一个JavaScript函数(ActiveXOrNull)成功地检测到这种所以现在我已经更换了上面我的标记有:

<script type="text/javascript"> 
    var obj = ActiveXOrNull('CADViewX'); 
    if (obj == null) { 
     WHAT DO I DO HERE 
    } 
</script> 

怎样包括在JavaScript函数原来的标记?我可以“包含”另一个页面吗?还是有另一种方法可用?

回答

1

如果你把控制在<div>标签

<div id="telerickControl"> 
    <telerik:RadToolBar......... 
    </telerick:RadToolBar> 
</div> 

然后javacript功能里面可以把


    var obj = ActiveXOrNull('CADViewX'); 
    if (obj == null) { 
     document.getElementById("telerickControl").style.display = "block"; 
    } 

默认设置divdisplay: none,然后展示给用户如果他们有ActiveX对象。

这将通过样式属性display隐藏页面的元素。但是,这仍将呈现页面上的控件,因此该控件仍将呈现。

编辑

更新答案由Stilgar建议。

+1

你应该反过来做。使其在标记中不可见,并通过JS启用它。否则,用户会在JS开始前看到它。 – Stilgar

+0

@Stilgar,好主意。加里乔伊内斯 - 这样做。 –