ASP.Net - Erste Daten aus RepeaterItem
Bin ich ziemlich neu ASP.Net und ich bin mir nicht sicher, ich werde über das der richtige Weg ist. Ich habe einen Repeater, die gebunden ist an eine Liste von "Bild" - Objekte. Innerhalb der einzelnen RepeaterItem ist eine checkbox und ich habe eine Schaltfläche OnClick-Ereignis, die ich anzeigen möchten einige Attribute der markierten Bildobjekte.
Dem Etikett updates, aber die Metadaten ist leer. DataBinder.Eval(ich.DataItem, "Dateiname") kommt wieder null, aber ich bin mir nicht sicher, warum? Ich dachte, vielleicht ist das postback aus der checkbox, die Probleme verursacht, aber ich bekomme immer noch das gleiche Problem, wenn ich versuche, die Daten anzuzeigen, bevor alle postbacks stattgefunden haben, also vielleicht bin ich nicht das abrufen der Attribute korrekt. Oder werde ich über diese in der komplett falschen Weg? Jede Hilfe zu schätzen.
Code:
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
string importPath = Server.MapPath("~/Images/ForImport");
ImageProcessor processor = new ImageProcessor(importPath);
rptImageList.DataSource = processor.ImageList;
rptImageList.DataBind();
}
}
protected void btnImport_Click(object sender, EventArgs e)
{
foreach (RepeaterItem i in rptImageList.Items)
{
CheckBox chk = i.FindControl("chkSelectImage") as CheckBox;
if (chk.Checked)
{
Testlabel.Text += "Selected: " + DataBinder.Eval(i.DataItem, "FileName");
}
}
}
HTML:
<asp:Repeater ID="rptImageList" runat="server">
<ItemTemplate>
<div class="photoinstance">
<asp:Image runat="server" ImageUrl='<%#"Images/ForImport/" +DataBinder.Eval(Container.DataItem, "FileName") %>' />
<asp:CheckBox ID="chkSelectImage" AutoPostBack="true" runat="server"/>
<p><%#Eval("FileName")%> - <%#Eval("FileSize")%> bytes</p>
</div>
</ItemTemplate>
</asp:Repeater>
DataItem
Eigenschaft ist nur immer verfügbar, vor dem postback in den ItemDataBound
Veranstaltung. Dies ist nicht darauf hingewiesen, sich sehr gut auf der MSDN-Website, aber Sie ist konsistent in allen ASP.NET Kontrollen
InformationsquelleAutor Ant P | 2011-11-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
ich.DataItem ist nicht verfügbar (null) an btnImport_Click, ist nur das ItemDataBound-Ereignis (wenn ich mich Recht erinnere, den event-Namen).
Sie können ein HiddenField speichern den Dateinamen, dann werden Sie haben, rufe ich.FindControl.
InformationsquelleAutor Adrian Iftode
Ich denke, diese Frage ist zu Fragen, wie man Daten aus einer repeater-postback und insbesondere, wie die Interaktion mit einem Kontrollkästchen, innerhalb eines repeater. Also auf der postback von einem anderen Steuerelement ein Beispiel, wie dies zu tun ist;
InformationsquelleAutor Atters