webForumDet fria alternativet

Loopa

6 svar · 272 visningar · startad av icaaq

icaaqMedlem sedan okt. 20005 273 inlägg
#1

Jag vill loopa ut alla bilder i en katalog, och tänkte då att jag skulle använda mig av DirectoryInfo.GetFiles()

Men jag vet inte riktigt hur jag ska få ur värdet ur den arrrayen och binda den till min Repeater.

Kan nån hjälpa mig med det eller om nån har nån länk så vore det tacksamt

mvh icaaq

cyprysMedlem sedan dec. 20003 563 inlägg
#2

Du kan få en kodsnutt så som jag gjort på ett ställe.
Jag bygger på ett dataset dynamiskt.

Sub fillfiles()
        Dim ds As New DataSet("textfiles")
        Dim dtable As New DataTable("files")
        dtable.Columns.Add("Filnamn")
        dtable.Columns.Add("Redigera")
        ds.Tables.Add(dtable)

        Dim dir As New DirectoryInfo(Server.MapPath("textfiler\"))
        Dim file As FileInfo
        For Each file In dir.GetFiles("*.*")
            Dim dr As DataRow = dtable.NewRow()
            dr(0) = file.Name
            dr(1) = "Redigera"
            dtable.Rows.Add(dr)
        Next

        dg_files.DataSource = ds.Tables("files")
        dg_files.DataBind()
        ' dg_files är en datagrid
    End Sub

Skulle lika gärna kunna vara en datatable iofs. :stud

PatrikBMedlem sedan mars 20002 836 inlägg
#3

lite smidigare tycker då jag är att binda dir.GetFiles direkt mot repeatern, datagrid eller Datalist etc.
Det är ju en collection av FileInfo object som returneras och kan därför användas som datasource direkt:

<%@ Page Language="VB" %>
<%@ import Namespace="System.IO" %>
<script runat="server">

    Public Sub Page_Load(Sender As Object, E As EventArgs)
        Dim _dir As New DirectoryInfo(HttpContext.Current.Server.MapPath("/"))

        rptFiles.Datasource = _dir.GetFiles("*.*")
        rptFiles.DataBind()
    End Sub
    
</script>
<html>
<head>
</head>
<body>
    <form runat="server">
        <asp:Repeater id="rptFiles" runat="server">
            <ItemTemplate>
                <%# CType(Container.DataItem,FileInfo).Name %><br>
            </ItemTemplate>
        </asp:Repeater>
    </form>
</body>
</html>

cya,
PatrikB

icaaqMedlem sedan okt. 20005 273 inlägg
#4

ok, det löste sig med loopningen tror jag ;)

Men hur gör jag med mina radiobuttons :q
Jag loppar ut radiobuttons i min repeater också, så här:

[red]
<asp:repeater id='picrepeater' runat=server>
	<itemtemplate>
		<input type='radio' id='pic' value='<%# Container.DataItem %>'>
		<img src="/strandportalen/admin/vd/<%# Container.DataItem %>">
	</itemtemplate>
	<separatortemplate>
		<hr size='1'>
	</separatortemplate>
	<footertemplate>
		<hr size='1'>
	</footertemplate>
</asp:repeater>
[/red]

men hur får jag ska jag göra föra att få tag i värdet på den radiobutton som blir "pushed"??

mvh icaaq

icaaqMedlem sedan okt. 20005 273 inlägg
#5

Eller om jag säger så här, hur ska jag göra för att man ska kunna bestämma att den här bilden ska jag göra nått med...när jag har kört ut alla bilder med en Repeater??

mvh icaaq

PatrikBMedlem sedan mars 20002 836 inlägg
#6

om du lägger på ett id på radio-buttonen och runat=server så hanteras den som en egen kontroll (HTML Control) och du kan fånga upp värdet från den radio-buttonen som du klickar på med tex OnClick eventet:

<input type="radio" id="<%# CType(Container.DataItem, FileInfo).Name %>" value="<%# CType(Container.DataItem, FileInfo).Name %>" runat="server" OnClick="DoOn_Click">

nu får du id=value ... borde vara unikt
i DoOn_Click eventet så får du fram vilken radio-button som har clickats på detta vis:

Public Sub DoOn_Click(Sender as Object........)
'## -- vilket id som klickats --
radBTN = Sender.ID
.
.
.

cya,
PatrikB

icaaqMedlem sedan okt. 20005 273 inlägg
#7

Om jag kör onclick får jag bara Javascripts fel :(

Vad har jag gjort för fel?

[red]
<input type='radio' id='pic' value='<%# Container.DataItem %>' onclick="DoOnClick" runat=server>
[/red]

mvh icaaq

127 ms totalt · 3 externa anrop · v20260731065814-full.beb2e261
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)