I have created a custom itemtemplate for my listView control, but the item command does not fire for the buttons generated through the ITemplate. NOt only this, the items disappear when you click on any button. Following is the code i am using, is something wrong with it.
The code for ITemplate
public class FirstItemTemplate : ITemplate {
public void InstantiateIn(System.Web.UI.Control container)
{
var oTR = new HtmlGenericControl("tr");
var oTD1 = new HtmlGenericControl("td");
Button btnEnter = new Button();
btnEnter.ID = "btnEnter";
oTD1.Controls.Add(btnEnter);
oTR.Controls.Add(oTD1);
var oTD2 = new HtmlGenericControl("td");
Label lblProduct = new Label();
lblProduct.ID = "lblProduct";
oTD2.Controls.Add(lblProduct);
oTR.Controls.Add(oTD2);
oTR.DataBinding += new EventHandler(oTR_DataBinding);
container.Controls.Add(oTR);
}
void oTR_DataBinding(object sender, EventArgs e)
{
var container = (HtmlGenericControl)sender;
var dataItem = ((ListViewDataItem)container.NamingContainer).DataItem;
PaperObject pro = (PaperObject)dataItem;
Button btnEnter = (Button)container.FindControl("btnEnter");
Label lblProduct = (Label)container.FindControl("lblProduct");
btnEnter.Text = pro.PaperId.ToString();
btnEnter.CommandName = "Select";
btnEnter.CommandArgument = pro.PaperId.ToString();
lblProduct.Text = pro.Description;
}
}
and the databind:
ListView1.ItemTemplate = new FirstItemTemplate(); ListView1.DataSource = p.SelectPaper(); ListView1.DataBind();