Avatar billede jacob_top Nybegynder
30. november 2004 - 21:35 Der er 2 kommentarer

Liste filer i mappe, med mulighed for at slette.

Hej Alle!

Jeg er som nogen sikkert ved i gang med at ligge sidste hånd på en web applikation og her mangler jeg en sidste feature!

Jeg har et arkiv, hvor brugeren har mulighed for at uploade filer i en undermappe.

Jeg har kigget lidt på asp.net's datagrid control for at vise filerne i mappen og det ser sådan her ud(Simpelt):

.aspx
<asp:datagrid id="DataGrid1" runat="server" CssClass="menuitemB" ShowHeader="False" CellPadding="3">
</asp:datagrid>

codebehind filen:

private void Page_Load(object sender, System.EventArgs e)
{
    ArrayList filnavne = new ArrayList();
    DirectoryInfo di = new DirectoryInfo(Server.MapPath("Arkiv") + "\\" + Request.QueryString["id"]);
   
FileInfo[] rgFiles = di.GetFiles("*.*");
int x = 0;
foreach(FileInfo fi in rgFiles)
{
    filnavne.Add("<a href=" + "Arkiv/" + Request.QueryString["id"].Trim() + "/" + fi.Name.Replace(" ","%20") + " class='menuitemA'>" + fi.Name + "</a>");
                x++;     
}
DataGrid1.DataSource = filnavne;
DataGrid1.DataBind();
}


Det virker også fint nok, men jeg vil også gerne have at brugeren skal have mulighed for at slette de enkelte filer i mappen. Derfor har jeg leget lidt med datagrid og fået tilføjet en column med linkbuttons som hedder "slet".
Men her stopper legen også!
Jeg kan simpelt hen ikke finde ud at komme længere. Hvis jeg sætter autogeneratecolumns til false og tilføjer en "bound column" til datagrid'et kan jeg ikke få vist filerne i mappen.

Jeg ved simpelt hen ikke hvordan det skal gøres?!?

Det er jo ikke særligt avanceret.
Er der nogen alternativ til datagrid for at få genereret sletknapper "on the fly"?

Nogen der kan hjælpe?

Mvh

Jacob
Avatar billede jaffafo Nybegynder
01. december 2004 - 02:55 #1
du skal tilføje en attribut der hedder -> OnDeleteCommand="delete" <- til din datagrid og din Bound COlumn skal se således ud:

<asp:ButtonColumn ButtonType="LinkButton" CommandName="delete" Text="Slet" />



og så har du i din code behind:

(dette er i vb.net, går udfra du kan oversætte det :))
sub delete(ObjSource as Object, objArgs as DatagridCommandEventArgs)
  'kode her.
end sub
Avatar billede burningice Nybegynder
01. december 2004 - 21:50 #2
der er nok en der kommer fra en asp baggrund ? ;)

1) du bør ikke blande din html-kode ind i selve koden
2) Ved at slå autogenerate columns fra og bruge Template og BoundColumn + ButtonColumn i dit datagrid kan lave det hele lidt nemmere og pænere

der er mange tutorials på nettet omkring det, her er en god en: http://samples.gotdotnet.com/quickstart/aspplus/samples/webforms/ctrlref/webctrl/datagrid/doc_datagrid.aspx
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester