Asp.net

自定義 ASP.NET 容器控制項

  • December 30, 2021

我一直在嘗試創建一個自定義控制項,該控制項的工作原理與 Panel 控制項完全相同,只是被幾個 div 包圍,這樣可以創建一個圓角框外觀。我還沒有找到一個很好的例子來說明如何做到這一點。

我需要能夠在控制項內放置文本和控制項並直接訪問它而不引用面板(正是面板控制項的工作方式)。

有沒有人有這方面的例子?

有兩種方法可以做到這一點。一種是INamingContainer在你的控制項上實現,這需要付出很多努力。

另一種方法是從 Panel 繼承,並覆蓋 RenderBeginTag 和 RenderEndTag 方法以添加您的自定義標記。這很容易。

public class RoundedCornersPanel : System.Web.UI.WebControls.Panel
{
   public override RenderBeginTag (HtmlTextWriter writer)
   {
       writer.Write("Your rounded corner opening markup");
       base.RenderBeginTag(writer);
   }

   public override RenderEndTag (HtmlTextWriter writer)
   {
       base.RenderEndTag(writer);
       writer.Write("Your rounded corner closing markup");                     
   }
}

引用自:https://stackoverflow.com/questions/306288