1

我在设计视图中遇到了自定义面板控件的问题。覆盖渲染方法在设计时没有影响。

如果我按如下方式扩展文本框,则设计时会显示 div 标记,然后显示文本框控件。对面板控件进行了同样的尝试,但它没有显示带有此处文本的 div。似乎因为面板是一个容器控件,它在设计视图中的工作方式不同。真令人沮丧。关于如何让我的设计时间以我想要的方式呈现的任何想法?

Public Class textboxextend
  Inherits TextBox

  Protected Overrides Sub Render(ByVal writer As System.Web.UI.HtmlTextWriter)

    writer.RenderBeginTag("div")
    writer.Write("here")
    writer.RenderEndTag()
    MyBase.Render(writer)
  End Sub
End Class

Public Class panelextend
  Inherits Panel

  Protected Overrides Sub Render(ByVal writer As System.Web.UI.HtmlTextWriter)

    writer.RenderBeginTag("div")
    writer.Write("here")
    writer.RenderEndTag()
    MyBase.Render(writer)
  End Sub
End Class
4

1 回答 1

0

Panel 的工作方式与 TextBox(和大多数控件)不同。没有 Render 方法,因此永远不会调用覆盖。面板使用 RenderBeginTag 和 RenderEndTag。您可能还想使用 AddAttributesToRender 方法。

于 2011-05-31T02:12:03.697 回答