|
Categorieën >
ASP
ASP.net repeater gebruiken voor webgallery (Opgelost)
|
|
|
offline
|
PHP beginner
|
Hallo allemaal,
In mijn code-behind page lees ik een willekeurige directory met afbeeldingen uit om deze vervolgens in ASP.net(view) te weergeven. Op dit moment doe ik dit met een label. Ik zou dit graag met de ASP.net repeater doen, omdat mij deze beter geschikt lijkt.
Hieronder een stukje code zoals ik het op dit moment gebruik:
string[] aryPhotos;
aryPhotos = Directory.GetFiles(strFileSystemPath, "*.jpg");
foreach (string strPhoto in aryPhotos)
{
output.Text += "<img src=" + strDirAlbum + strPhoto.Substring(strFileSystemPath.Length + 1) + "\" />";
}
string[] aryPhotos; aryPhotos = Directory.GetFiles(strFileSystemPath, "*.jpg"); foreach (string strPhoto in aryPhotos) { output.Text += "<img src=" + strDirAlbum + strPhoto.Substring(strFileSystemPath.Length + 1) + "\" />"; }
Bedankt alvast!
Martijn |
4 antwoorden
|
|
|
offline
|

Crew .NET
|
List<String> lstFotos = new List<String>();
string[] aryPhotos = Directory.GetFiles(strFileSystemPath, "*.jpg");
foreach(String foto in aryPhotos)
lstFotos.Add("<img src=\"" + strDirAlbum + strPhoto.Substring(strFileSystemPath.Length + 1) + "\" />";
uwRepeater.DataSource = lstFotos;
uwRepeater.DataBind();
List <String> lstFotos = new List <String>();string[] aryPhotos = Directory.GetFiles(strFileSystemPath, "*.jpg"); foreach(String foto in aryPhotos) lstFotos.Add("<img src=\"" + strDirAlbum + strPhoto.Substring(strFileSystemPath.Length + 1) + "\" />"; uwRepeater.DataSource = lstFotos; uwRepeater.DataBind();
|
|
|
|
offline
|
PHP beginner
|
Cool, alleen nu vraag ik me nog af hoe ik de data bind in de view(ASP.net)?
|
|
|
|
offline
|

Crew .NET
|
Je kan blijkbaar niet zomaar een string doorgeven, of ik zou toch niet weten hoe. Anders was het simpel opgelost. Ik heb het even anders gedaan en dit werkt:
//namen ophalen
string[] aryPhotos = Directory.GetFiles(strFileSystemPath, "*.jpg");
//DataTable maken
DataTable dt = new DataTable();
//1 kolom van het type String hieraan toevoegen
dt.Columns.Add(new DataColumn("Image", System.Type.GetType("System.String")));
//DataView maken, dit wordt de source van de Repeater
DataView dv = new DataView(dt);
//DataRow initaliseren
DataRow dr;
foreach (string strPhoto in aryPhotos)
{
//voor elke naam in de array een nieuwe rij aanmaken
dr = dt.NewRow();
//in de eerste kolom (beginnen tellen bij 0), er is maar 1 kolom trouwens de waarde zetten
dr[0] = strDirAlbum + strPhoto.Substring(strFileSystemPath.Length + 1);
//rij toevoegen aan DataTable
dt.Rows.Add(dr);
}
//Source van Repeater instellen
imageRepeater.DataSource = dv;
imageRepeater.DataBind();
//namen ophalen string[] aryPhotos = Directory.GetFiles(strFileSystemPath, "*.jpg"); //DataTable maken DataTable dt = new DataTable ();//1 kolom van het type String hieraan toevoegen dt. Columns. Add(new DataColumn ("Image", System. Type. GetType("System.String")));//DataView maken, dit wordt de source van de Repeater DataView dv = new DataView (dt );//DataRow initaliseren DataRow dr; foreach (string strPhoto in aryPhotos) { //voor elke naam in de array een nieuwe rij aanmaken dr = dt.NewRow(); //in de eerste kolom (beginnen tellen bij 0), er is maar 1 kolom trouwens de waarde zetten dr[0] = strDirAlbum + strPhoto.Substring(strFileSystemPath.Length + 1); //rij toevoegen aan DataTable dt.Rows.Add(dr); } //Source van Repeater instellen imageRepeater.DataSource = dv; imageRepeater.DataBind();
Het kan korter zodat je niet het DataRow-object elke keer moet gaan toepassen:
string[] aryPhotos = Directory.GetFiles(strFileSystemPath, "*.jpg");
DataTable dt = new DataTable();
dt.Columns.Add(new DataColumn("Image", System.Type.GetType("System.String")));
DataView dv = new DataView(dt);
foreach (string strPhoto in aryPhotos)
dt.Rows.Add(dt.NewRow()[0] = strDirAlbum + strPhoto.Substring(strFileSystemPath.Length + 1));
imageRepeater.DataSource = dv;
imageRepeater.DataBind();
string[] aryPhotos = Directory.GetFiles(strFileSystemPath, "*.jpg"); DataTable dt = new DataTable ();dt. Columns. Add(new DataColumn ("Image", System. Type. GetType("System.String")));DataView dv = new DataView (dt ); foreach (string strPhoto in aryPhotos) dt.Rows.Add(dt.NewRow()[0] = strDirAlbum + strPhoto.Substring(strFileSystemPath.Length + 1)); imageRepeater.DataSource = dv; imageRepeater.DataBind();
En dan de aspx-pagina:
<asp:Repeater ID="imageRepeater" runat="server">
<ItemTemplate>
<asp:Image ImageUrl='<%# DataBinder.Eval(Container.DataItem, "Image") %>' runat="server" />
<br />
</ItemTemplate>
</asp:Repeater>
<asp:Repeater ID="imageRepeater" runat="server"> <ItemTemplate> <asp:Image ImageUrl='<%# DataBinder.Eval(Container.DataItem, "Image") %>' runat="server" /> </ItemTemplate> </asp:Repeater>
|
|
|
|
offline
|
PHP beginner
|
Brilliant  !
|
Dit onderwerp is gesloten.
|
|
|