Jag har försökt göra en usercontrol, när jag drar in den på sidan så funkar den jättebra. Mm, du pekar alla dina usercontrols mot Table1 och då blir det rimligen kaka på kaka. Tror det är det som blir fel i ditt läge. Var har du kontrollen Table1? Lägger till Kontrollen i ascx filen nu och nu funkar det att ha flera på samma sida. Hmm, det verkar konstigt eftersom en kontroll implementerar INamingContainer som ser till att alla subkontroller får unika namespaces. <codecsharp> Och hur ser .ascx sidan ut? Har du några kontroller där?usercontrol
Men om jag drar in en till så funkar bara den första.
Jag trodde dessa skulle funka oberoende av varandra.
min page_load i min usercontrol ser ut så här
<code>
TableRow Parent = new TableRow();
TableCell huvud = new TableCell();
huvud.Width = 185;
huvud.BorderWidth = 0;
huvud.BorderColor = Color.Black;
ImageButton h = new ImageButton();
h.ImageUrl = @"smi\mintruexpner.JPG";
huvud.Controls.Add(h);
h.Click +=new System.Web.UI.ImageClickEventHandler(h_Click);
Parent.Cells.Add(huvud);
Table1.Rows.Add(Parent);
</code>
ska alltså bara vara en tabell med en knapp i. Och när man trycker på knappen så byts bilden i tabellen.
Är det något man ska tänka på när man bygger en usercontrolSv: usercontrol
Sv: usercontrol
Du bör lägga den i din .ascx fil så ska kontrollen kunna hantera att du har två kontroller på sidan.
Däremot om du själv lägger till en kontroll Table1 i din .aspx fil och sedan lägger in två kontroller så ropar de på samma Table.
/Patrik
www.pdc.se
www.pdc.se/blog
www.patrik-dahlen.nuSv: usercontrol
Men när jag klickar på
<code>
h.Click +=new System.Web.UI.ImageClickEventHandler(h_Click);
</code>
så körs
Table1.Rows.Add(getTableRow("smi/xp_check.gif","Dokument","Start.aspx"));
och en rad ska läggas till, problemet är bara att denna körs på båda mina kontroller nu, eftersom Table1.rows.add, antagligen går mot båda mina kontroller på sidan.
Hur kan jag lösa dettaSv: usercontrol
Kan du visa all kod för kontrollen så ska jag testa den.
/pD
www.pdc.se
www.pdc.se/blog
www.patrik-dahlen.nuSv: usercontrol
protected System.Web.UI.WebControls.Table Table1;
private void Page_Load(object sender, System.EventArgs e)
{
TableRow Parent = new TableRow();
TableCell huvud = new TableCell();
huvud.Width = 185;
huvud.BorderWidth = 0;
huvud.BorderColor = Color.Black;
ImageButton h = new ImageButton();
h.ImageUrl = @"smi\mintruexpner.JPG";
huvud.Controls.Add(h);
h.Click +=new System.Web.UI.ImageClickEventHandler(h_Click);
Parent.Cells.Add(huvud);
Table1.Rows.Add(Parent);
}
public TableRow getTableRow(string image,string text, string link)
{
TableRow afd1 = new TableRow();
TableCell df1 = new TableCell();
df1.BorderColor = Color.AliceBlue;
df1.BorderWidth = 5;
df1.Text = "<img src='"+ image+"' border=0 align='absmiddle' hspace=6>" + text + "";
afd1.Controls.Add(df1);
return afd1;
}
private void h_Click(object sender, System.Web.UI.ImageClickEventArgs e)
{
ImageButton h = (ImageButton)sender;
if(h.ImageUrl==@"smi\mintruexpner.JPG")
{
h.ImageUrl = @"smi\mintruexpupp.JPG";
this.Table1.Rows.Add(getTableRow("smi/xp_check.gif","Dokument","Start.aspx"));
this.Table1.Rows.Add(getTableRow("smi/xp_programs.gif","Mapp-information","Start.aspx"));
this.Table1.Rows.Add(getTableRow("smi/xp_publish.gif","Behörighet","Start.aspx"));
this.Table1.BackColor = Color.AliceBlue;
this.Table1.CellPadding = 0;
this.Table1.CellSpacing = 0;
}
else
{
h.ImageUrl = @"smi\mintruexpner.JPG";
TableCell c = (TableCell)h.Parent;
c.Height = 0;
}
}
}
</code>Sv: usercontrol
/pD
www.pdc.se
www.pdc.se/blog
www.patrik-dahlen.nu