Forum > ASP.NET 1.x och 2.x > Språk - C#
Hejsan, ber om ursäkt för dåligt namn på tråden.
Mitt problem är att (se bilden nedan) skall alla fält utom det röda listas en bild i. Dock kommer jag verkligen inte på hur jag ska lösa detta på ett smidigt sätt. Vilket nu börjar bli hemskt irriterande :(
//Johan
Du har nog missat att lägga in bilden för jag ser då ingen bild.
Oj, my bad :P Fixar direkt
Redigerad av Fwaky
Anledning:Bild länk uppe
1. Är alla "rutor" bilder, dvs 9 bilder?
2. Är alla i samma höjd?
3. Var kommer bilderna ifrån?
oj, glömde visst nämna att den röda rutan är INTE en bild hämtad från databasen. Den är helt statisk (dvs loggan för ett företag).
Men hur hämtar du ut alla andra 8 bilder just nu då?
Så här ser min pageload ut för gallerisidan,
protected void Page_Load(object sender, EventArgs e)
{
int galleriID = int.Parse(Request.QueryString["ID"]);
int x = 1;
Database DB = new Database();
OleDbDataReader dr = DB.ExecuteQuery("SELECT * FROM tblBild WHERE bildGalleriId = " + galleriID + " ORDER BY bildId ASC");
while (dr.Read())
{
string thumbName = dr[2].ToString();
string imgFolder = Server.MapPath("img/");
string imgUrl = imgFolder+thumbName;
thumbName = Path.Combine("Uploaded_Img/",
string.Format("{0}_th{1}",
Path.GetFileNameWithoutExtension(thumbName),
Path.GetExtension(thumbName)
)
);
}
}
Efter thumbname så hade jag då tänkte att i loopen på något sätt binda ut dem till någon slags aspkontroll i varje ruta, dock inte klurat ut hur jag ska få den att välja rätt asp.net kontroll (alltså asp <asp:x />)
Sätt det i en repeater och ha en lista av bilderna se exemplet jag skrev för någon vecka sedan:
http://www.aspkoll.se/ForumRead.asp?id=16839#16879
Där finns det två asp-kontroller:
#image och #link inne i den repeatern
Borde vara ganska enkelt att få en check att "Är vi på index 4 så skall företags-logotypen också skrivas ut", resten av problemet är en CSS fråga.
Redigerad av voigtan
Anledning:
Eller så använder du SQL datan som din datakälla och kör samma sak där.
Ok, får prova och se om jag får klassen du skapade där att jobba med resten av koden jag har, så får jobba lite med att anpassa min kod :]
Tänkte bara på en sak, går det att dynamiskt ändra välja en kontroll med ett id? Alltså, om jag har 8st gallery_(1-8), kan jag då på något sätt göra inte bara putta in bilden i rätt ruta genom att ändra id't på gallery_x ?
Om du kör på din kod, så borde du kunna använda dig av
e.Item.FindControl("image_" + i)Provade det, men dock funkade det inte. Så provade börja skriva "e." men det kom inte upp Item
e i ditt fall är ett event, så den har inga items, by bad, vad är sendern för objekt i din kod? du bör kanske kunna köra page.find .... ?
Om jag förstått dig rätt får du använda dig av Repeaterns DataBound-event:
protected void rprImageGallery_DataBound(object source, RepeaterItemEventArgs e) {
if (!(e.Item.ItemType.Equals(ListItemType.Item) || e.Item.ItemType.Equals(ListItemType.AlternatingItem))) return;
DinImageClass image = e.Item.DataItem as DinImageClass;
if (image == null) return;
HtmlImage Picture = e.Item.FindControl("Image_" image.ImageId) as HtmlImage;
}Skall prova om det funkar, dock kommer jag inte kunna testa ikväll då jag glömde ladda upp projektet på en ftp så ligger på min jobb pc just nu "/
Löste det genom att lägga en repeater och sedan skriva ut all data på en gång,
if (x == 1 || x == 4 || x == 7)
{
galleriSrc.Add("<tr>");
}
if (x == 5)
{
galleriSrc.Add("<td class=\"logoTd\"><a href=\"Default.aspx\"><img src=\"img/logga.png\" alt=\"Gunnar Guldsmed\" /></a>");
}
else if (x == 2 || x == 4 || x == 6 || x == 8)
{
galleriSrc.Add("<td class=\"middleWhite\"><a href=\"" + onClickUrl + "\"><img src=\"" + thumbName + "\" alt=\"" + imgAlt + "\" /></a></td>");
}
else
{
galleriSrc.Add("<td><a href=\"" + onClickUrl + "\"><img src=\"" + thumbName + "\" alt=\"" + imgAlt + "\" /></a></td>");
}
if (x == 3 || x == 6 || x == 9)
{
galleriSrc.Add("</tr>");
}
x++;