Ich habe ein benutzerdefiniertes ItemTemplate für mein ListView-Steuerelement erstellt, aber der Elementbefehl wird nicht für die Schaltflächen ausgelöst, die durch die ITemplate generiert werden. Nur wenn Sie auf eine Schaltfläche klicken, verschwinden die Elemente. Nachstehend ist der Code, den ich benutze, ist etwas falsch damit.itemCommand-Ereignis, das in ListView mit benutzerdefinierter ITemplate nicht ausgelöst wird
Der Code für 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;
}
}
und die databind:
ListView1.ItemTemplate = new FirstItemTemplate(); ListView1.DataSource = p.SelectPaper(); ListView1.DataBind();
Ich wollte nur eine Auflösung meiner Frage stellen. Ich fügte beide eine ID für die Verbindung hinzu, bevor sie zu dem Container hinzugefügt wurde, d. linkbtn.ID = "lbDrilldown", und auch zu einem dynamisch hinzugefügten div, das das übergeordnete Element des Datagrids war. Stellen Sie sicher, dass Sie jeden Bereich überprüfen, dem Sie dynamisch Steuerelemente hinzufügen, und stellen Sie sicher, dass Sie ihnen eine ID zuweisen, auch wenn Sie keine Ereignisse von ihnen verarbeiten oder versuchen, sie in Ereignissen usw. zu finden. –