【问题标题】:disable href on content page from Master page in vb.net从 vb.net 的母版页禁用内容页上的 href
【发布时间】:2011-05-12 01:59:40
【问题描述】:

正如标题所说。我有代码可以禁用所有 runat=server 的控件。如下

Dim c As Control
For Each c In pc
   If c.HasControls Then DisableAllControls(c.Controls)

   If c.GetType.ToString.ToLower.IndexOf("webcontrols.dropdownlist") > -1 Then
      DirectCast(c, DropDownList).Enabled = False
   ElseIf c.GetType.ToString.ToLower.IndexOf("webcontrols.textbox") > -1 Then
      DirectCast(c, TextBox).Enabled = False
   ElseIf c.GetType.ToString.ToLower.IndexOf("webcontrols.radiobuttonlist") > -1 Then
      DirectCast(c, RadioButtonList).Enabled = False
   ElseIf c.GetType.ToString.ToLower.IndexOf("webcontrols.radiobutton") > -1 Then
      DirectCast(c, RadioButton).Enabled = False
   ElseIf c.GetType.ToString.ToLower.IndexOf("webcontrols.button") > -1 Then
      DirectCast(c, Button).Enabled = False
   End If
 Next

但我也想禁用其中的几个 href。我知道他们不运行服务器,所以我怎样才能捕捉到这些?

【问题讨论】:

  • 抱歉没有格式化。我不确定如何在这里格式化代码。
  • 有了这个,我将不得不获取我身边每个href的名称并禁用它。没有意义。如果您阅读我的代码,我会禁用所有按钮,ddl 的 txtboxes。我需要为 标签 做同样的事情

标签: vb.net master-pages


【解决方案1】:

你可以加runat="server":

<a runat="server" href="..." ></a>

这是使用服务器端代码维护控件的唯一方法。

【讨论】:

    【解决方案2】:

    您也可以将 runat="server" 添加到 HTML 控件。没有它,您将无法访问服务器端的控件,也无法禁用它。

    【讨论】:

      【解决方案3】:

      该代码看起来无效(If c.HasControls Then DisableAllControls(c.Controls) 没有匹配的 End If)但也许 VB.NET 在我没有意识到的情况下添加了类似的内联 If 语法。

      无论如何,就禁用所有runat="server" 控件而言,您应该可以这样做:

      For Each c as WebControl In pc.OfType(Of WebControl)()
          ' Put your recursive call here as before 
          c.Enabled = False
      Next
      

      现在,要“禁用”这些其他元素,您可以向它们添加runat="server"(如果您已经生成了 HTML,可能甚至不可能),或者您可以使用一些 JavaScript。我将假设禁用是指在&lt;a&gt; 标签的情况下隐藏?

      jQuery 让这一切变得简单,示例脚本类似于:

      $(document).load(function() {
        $('a').hide();
      });
      

      或:

      /* hides all a tags under an element with class="someClass" */
      $(document).load(function() {
        $('.someClass a').hide(); 
      });
      

      然后你可以让你的代码渲染这个脚本,在你的页面中使用这样的东西:

      Dim script as String = "" /* your javascript here */
      Me.ClientScript.RegisterClientScriptBlock(Me.GetType(), "HideTagsScript", script)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-02-16
        • 2013-02-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多