Zugriff auf listview itemtemplate aus codebehind
Ich hoffe, dynamisch ändern Sie die Anzahl der Spalten in meiner ItemTemplate meiner ListView:
<asp:ListView runat="server" ID="ReportListView" DataSourceID="ReportListViewSDS">
<LayoutTemplate>
<table>
<tr>
<asp:PlaceHolder runat="server" ID="itemPlaceHolder" />
</tr>
</table>
</LayoutTemplate>
<ItemTemplate>
<!-- need to dynamically create the number of columns in the code behind
based on the select statement in the SelectCommand -->
</ItemTemplate>
</asp:ListView>
Dann in der code-behind habe ich:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
' Based on The Request.Form variables sent, the SQL command will
' select x number of columns:
' SqlStatement = "SELECT " for each Request.Form values " FROM staff"
' example: "SELECT Fname, Lname, email, phone FROM staff"
' Run sql command.
' that all works, the question now is how do i change the ItemTemplate
' so that it has the correct number of columns. Something like this: (pseudo code)
For each row found in sql command
ReportListView.ItemTemplate.Add( "<tr>" )
For each Request.Form as i
ReportLIstView.ItemTemplate.Add( "<td>" & sqlresult(i) & "</td>" )
Next
ReportListView.ItemTemplate.Add( "</tr>" )
Next
End Sub
Vielleicht gibt es einen anderen Weg zu gehen, aber das ist die einzige Idee, der so weit gekommen. asp.net Neuling, jede Beratung sehr herzlich willkommen! Danke!
InformationsquelleAutor russds | 2011-09-02
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich denke, du gehst zu haben, um dies ein wenig anders. Probieren Sie etwas wie dieses:
Die syntax ist vielleicht nicht perfekt, aber versuchen Sie so etwas in Ihrem code hinter:
Andere Möglichkeit wäre die Errichtung der ItemTemplate der gleichen Weise, aber da Sie mit einem datengebundenen Steuerelement möchten Sie vielleicht, um die Vorteile der Datenbindung-Ereignis des listview. Diese syntax kann nicht perfekt sein, weil Sie möglicherweise mit einer anderen Sammlung zu binden, um die Liste (die wäre nach der Ausführung der Abfrage), aber das sollte Euch auf die richtige Spur:
Ich würde in der Regel den Einsatz eines Repeaters für diese Art von Arbeit, denn es ist bare-bones und leicht. Sie sind nicht wirklich unter Ausnutzung jedes der listview-Funktionen aus, was ich sehe.
Verwendung einer Kombination der Antworten, die ich bekommen dies ist, was ich habe zu arbeiten:
Code Hinter:
Dank für die Richtung der anderen 2 Antworten, dass auf jeden Fall, hab mir 90%, nur ein paar andere tweaks, und ich war gut zu gehen. Danke!
ich benutze diesen code zum ausblenden eines Elements in der Artikel-Vorlage