Dobrý den,
mám problém s webovou componentou. Potřebuji vytvořit komponentu (je mi celkem jedno jestli to bude WebControl nebo UserControl), kterou budu moci využívat tak, že mezi begin a end tag budu moci vložit jakýkoliv další ovládací prvek, např. tedy
<%@ Register assembly="tblWeb" namespace="myComponentsLib" tagprefix="my" %>
<my:tblWeb ID="tblWeb1" runat="server" Icon="list" Title="tomik" Width="600">
<asp:GridView ID="grdVW1" runat="server" />
</my:tblWeb>
V současné chvíli mi komponenta funguje pouze když nemám mezi begin a end Tagem nic. V opačném případě mi vyskakuje
Chybová zpráva analýzy: Typ jindraComponentsLib.EliTableWeb neobsahuje veřejnou vlastnost s názvem TextBox.
Zdrojová chyba:
Řádek 12: <form id="form1" runat="server">
Řádek 13: <my:tblWeb ID="tblWeb1" runat="server" Icon="list" Title="tomik" Width="600">
Řádek 14: <asp:TextBox ID="txt1" runat="server" Text="Text" />
Řádek 15: </my:tblWeb>
Nevíte někdo v čem jsem udělal chybu nebo co mi tu chybí?
CS kód komponenty je
public class TblWeb : WebControl, INamingContainer
{
[Bindable(true)]
[Category("Appearance")]
[DefaultValue("")]
[Localizable(true)]
public string Text
{
get
{
String s = (String)ViewState["Text"];
return ((s == null) ? "[" + this.ID + "]" : s);
}
set
{
ViewState["Text"] = value;
}
}
private String icon;
private String title;
private Int32 width;
public TblWeb()
{
this.icon = "";
this.width = 150;
}
protected override void Render(HtmlTextWriter writer)
{
writer.Write("<table ... >");
writer.Write("<tr>");
writer.Write("<td>...</td>");
}
}
public override void RenderEndTag(HtmlTextWriter writer)
{
writer.Write("</td></tr></table>");
}
protected override void RenderChildren(HtmlTextWriter writer)
{
base.RenderChildren(writer);
}
public String Icon
{
get { return icon; }
set { icon = value; }
}
public String Title
{
get { return title; }
set { title = value; }
}
}
Moc diky za pomoc.
Jindra