Hej. EfterRepeater och knapp med eventhandler
Jag har en fråga angående eventhandler onClick. Det är så att jag via en egen class gör en template till min repeater och i denna class ska det göras en raderingsknapp som ska vara kopplad till en eventhandler . Min fråga är ska eventhandler-koden ligga på sidan som repeatern skrivs ut på eller ska den ligga i klassen som generarar template eller någon annanstans? Hur och vart kopplar jag knappen till eventkoden? Gör jag det i koden som generarar templaten eller gör jag det i någonstans på sidan som skriver ut repeatern?
Hm, lite rörigt det där. Hoppas någon förstår vad jag menar och kan hjälpa mig.
Så här ser classen ut som generar templaten (delar av den)
<code>
public class CommentsItemTemplate : ITemplate
{
public void InstantiateIn(Control container)
{
ImageButton btnDelete = new ImageButton();
btnDelete.DataBinding += new EventHandler(Delete_DataBinding);
container.Controls.Add(btnDelete);
}
private void Delete_DataBinding(object sender, EventArgs e)
{
ImageButton btnDelete = (ImageButton)sender;
RepeaterItem container = (RepeaterItem)btnDelete.NamingContainer;
btnDelete.ImageUrl = "radera.gif";
btnDelete.AlternateText = "Radera";
//Osäker på denna kodsnutt
btnDelete.Click += new ImageClickEventHandler(?);
}
}
</code>
Och så här ser koden för repeatern ut ligger i page_load
<code>
string sql = "select * from comments";
OleDbConnection conn = new OleDbConnection(strConnString);
OleDbCommand cmd = new OleDbCommand(sql, conn);
conn.Open();
OleDbDataReader dr = cmd.ExecuteReader();
if (dr.HasRows)
{
bloggComments.ItemTemplate = new CommentsItemTemplate();
bloggComments.DataSource = dr;
bloggComments.DataBind();
}
else
{
lblMsg.Text = "Det finns inga kommentarer!";
}
dr.Close();
conn.Close();
</code>Sv: Repeater och knapp med eventhandler
btnDelete.DataBinding += new EventHandler(Delete_DataBinding);
borde du skapa en eventhandler till någonting, om koden som ska exekveras nu ska ligga i templaten