Hej
Listar alla bilder som ligger i en katalog. När man klickar på bilden ska bildens filnamn läggas i en textbox. Detta genom att använda imagesbuttons kopplat till en subrutin
Problemet uppstår när jag ska tala om vilken subrutin imagebuttonen ska hoppa till vid klick.
Hur löser jag detta, och hur skulle koden se ut ?
imgb.OnClick = SaveImages fungerar inte, se nedan
KOD -----------------------------------------------------------------------------
<script language="VB" runat="server">
private dir as DirectoryInfo
private f as FileInfo
sub Page_Load(obj as object, e as eventargs)
dir = new DirectoryInfo(Server.MapPath("../Images"))
dim imgb as Imagebutton
for each f in dir.GetFiles("\*.\*")
imgb = new Imagebutton
imgb.ID = f.Name
imgb.ImageUrl = Server.MapPath("../Images/") & f.Name
imgb.OnClick = SaveImages
PanelImages.Controls.Add(imgb)
PanelImages.Controls.Add(new LiteralControl("\<br\>"))
next
end sub
sub SaveImages(ByVal sender As Object, ByVal e As ImageClickEventArgs)
Images.Text= sender.ID
end sub
</script>
<form runat="server">
<asp:Panel id="PanelImages" runat="server" MaintainState="true" />
<asp:TextBox id="Name" runat="server"/>
<asp:TextBox id="Info" runat="server"/>
<asp:TextBox id="Images" runat="server"/>
</form>
-----------------------------------------------------------------------------------
Felmeddelande ---------------------------------------------------------------
Compiler Error Message: BC30390: 'System.Web.UI.WebControls.ImageButton.Protected Overridable Overloads Sub OnClick(e As System.Web.UI.ImageClickEventArgs)' is not accessible in this context because it is 'Protected'.
Line 18: imgb.OnClick = SaveImages
-----------------------------------------------------------------------------------
renholmMedlem sedan apr. 20012 266 inlägg testa med
protected sub SaveImages
eller så var det så man gjorde om man kör med codebehind kommer inte ihåg....
Hej, provade att använda protected framför sub, men det hjälpte inte, fick samma fel som innan (se ovan).
går det att lösa på något annat sätt ?
renholmMedlem sedan apr. 20012 266 inlägg Skulle man kunna få exakt hela koden?
Hej Renholm
Komplett kod, se bifogad fil (Add.txt)
Sidan består av tre textrutor. Två matar man in text i, och den tredje har en bläddra knapp som listar alla bilder som ligger i en mapp på serven.
När man klickar på en av bilderna ska dess filnamn läggas till i textrutan. Därefter lagras jag inmatad information i en databas.
Hoppas du förstår vad jag menar.
Mvh Patric
renholmMedlem sedan apr. 20012 266 inlägg Ahh, nu är jag med :)
Det ska inte vara OnClick utan bara Click. Testa det.
Hej, provade att ändra till från OnClick till Click, och nu uppkom följande fel istället.
Compiler Error Message: BC32022: 'Public Event Click(sender As Object, e As System.Web.UI.ImageClickEventArgs)' is an event, and cannot be called directly. Use a 'RaiseEvent' statement to raise an event.
Line 18: imgb.Click = SaveImages
renholmMedlem sedan apr. 20012 266 inlägg Hum, kika här:
http://groups.google.com/groups?q=dynamic+imagebuttons+click+event&hl=sv&lr=&ie=UTF-8&oe=UTF-8&selm=1af001c1b094%2428bb81b0%2435ef2ecf%40TKMSFTNGXA11&rnum=1
Sorry om jag inte är så bra på att hjälpa, det är VB :)
Här har du mer info om EventHandlers:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbcn7/html/vaconUnderstandingEventHandlers.asp
Någon annan som kan detta bättre än mig? hör av er :)
Kom på kanske än bättre lösning, skapa en DataGrid eller DataList som du binder filerna till, det är mycket lättare att hantera klicken då eftersom de hanteras i DataGridens eller DataListens ItemCommand.
Datalist var lösningen, tack för hjälpen :)