webForumDet fria alternativet

Loopa

.NET

6 svar · 272 visningar · startad av icaaq

Medlem sedan okt. 20005 273 inlägg
Frågan#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

Medlem 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

Medlem 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

Medlem 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

Medlem 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

Medlem 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

Medlem 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

252 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
123 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)