I trying to build a table using the TableControl in order manage som image files. What I would like to do is to load an image combined with a linkbutton into each cell and to delete the image if you click it.
The table is created complete with links and images, but the eventhandler attached to the linkbutton is not reached when I activate the linkbutton.
I assume that it has something to do with how the page is loaded, but I cannot figure out how to solve it.
I hope someone can supply me with some guidiance or perhaps just tell me whether it's even possible or not. The complete code for the codebehind file is:
Expand|Select|Wrap|Line Numbers
- public partial class Backend_manageImages : System.Web.UI.Page
- {
- ProductFactory objImages = new ProductFactory();
- CategoryFactory objCat = new CategoryFactory();
- protected void Page_Load(object sender, EventArgs e)
- {
- if (!IsPostBack)
- {
- ddlAlbums.DataTextField = "fldName";
- ddlAlbums.DataValueField = "fldID";
- ddlAlbums.DataSource = objCat.getAll();
- ddlAlbums.DataBind();
- }
- createTable();
- }
- protected void ddlAlbums_SelectedIndexChanged(object sender, EventArgs e)
- {
- createTable();
- }
- protected void createTable()
- {
- tblImages.Controls.Clear();
- TableRow tr = new TableRow();
- foreach (DataRow image in objImages.getByCategoryID(Convert.ToInt32(ddlAlbums.SelectedValue)).Rows)
- {
- TableCell td = new TableCell();
- //td.Text = "<a href=\"?ID=" + image["fldID"] + "\"><img src=\"../images/thumbs/" + image["fldFile"] + ".jpg\" alt=\"\" /></a>";
- Image img = new Image();
- LinkButton lnk = new LinkButton();
- img.ImageUrl = "../images/thumbs/" + image["fldFile"] + ".jpg";
- img.ToolTip = "Klik for at slette billedet";
- lnk.OnClientClick = "javascript: return confirm('Delete " + image["fldFile"] + ".jpg ?');";
- lnk.CommandArgument = image["fldID"].ToString();
- lnk.Click += lnk_Click;
- lnk.Controls.Add(img);
- td.Controls.Add(lnk);
- tr.Controls.Add(td);
- }
- tblImages.Controls.Add(tr);
- }
- protected void lnk_Click(object sender, EventArgs e)
- {
- LinkButton lnk = (LinkButton)sender;
- int ID = Convert.ToInt32(lnk.CommandArgument);
- DataRow image = objImages.getById(ID);
- System.IO.File.Delete(Request.PhysicalApplicationPath + "images\\" + image["fldFile"] + ".jpg");
- System.IO.File.Delete(Request.PhysicalApplicationPath + "images\\thumbs\\" + image["fldFile"] + ".jpg");
- objImages.deleteProduct(ID);
- Response.Redirect(Request.UrlReferrer.ToString());
- }
- }