Hej Du borde få fram filnamnet med: Tack för svaret, Patrik Hej Patrik (eller någon annan för den delen) Jo, med "filnamnetsindex" menar jag den position filnamnet har i ditt dataset. Räkna antalet kolumner. Om filnamnet kommer som kolumn nummer 4 så är dess index 3 (man startar på 0). Jag har varit, hm, off-line kan man säga den senaste tiden, och har därför inte sett era svar förrän nu. Tack för dom i alla fall. Har haft möjlighet att testa svaren men jag får ett felmeddelande: Jag har äntligen fått min fildeletefunktion att funka, men tyvärr inte med den metod som föreslagits här ovan. Synd då den verkar elegantare än min lösning.Deleta en fil från en grid
Håller på med ett projekt där användaren kan ladda upp filer via en datagrid. Jag tar filens namn från "upload"-funktionen och lägger filnamnet i en databas (xml-fil). Sen hämtar jag helt enkelt filnamnet till en "a href"-tagg i en datagrid. Det funkar fintfint.
Problemet är sen när användaren ska ta bort filen. Om denne trycker på datagridens "Delete"-knapp, tas ju bara filnamnet i databasen (xml-filen) bort. Själva filen blir kvar.
Kan jag från nedanstående "deletefunktion" hämta filnamnet så att jag kan använda "filedelete" på den rad i datagriden som användaren vill ta bort? Eller finns någon annan lösning månne?
Mvh
// Smyken
kod:
--------------------------------------------------------------------------------
public void doDel(Object sender, DataGridCommandEventArgs e) {
filnamn.EditItemIndex = -1;
DataSet ds = CDCFilUrl();
DataRow row = ds.Tables[0].Rows[e.Item.ItemIndex];
row.Delete();
ds.WriteXml(Server.MapPath("xmldb/mediefiler/filurl.xml"));
filnamn.DataSource = CDCFilUrl();
filnamn.DataBind();
---------------------------------------------------------------------------------Sv: Deleta en fil från en grid
<code>
ds.Tables[0].Rows[e.Item.ItemIndex].Cols[filnamnetsindex].ToString
</code>Sv: Deleta en fil från en grid
Ska kolla på det under morgondagen....
// SmykenSv: Deleta en fil från en grid
Jag har kollat lite på ditt förslag och förstår inte hur jag ska göra. Du har skrivit "filnamnetsindex". Hur vet jag det?
Mvh
// SmykenSv: Deleta en fil från en grid
Sv: Deleta en fil från en grid
Du kan även ange <b>namnet</b> på kolumnen istället för <b>index</b> värdet. Om du säger att kolumnen med filnamnet heter <b>Filnamn</b> (för att vara lite kreativa, he he) så kan du använda
string fileName =
ds.Tables[0].Rows[e.Item.ItemIndex].Columns["Filnamn"].ToString();
Hoppas det hjälper!
Sv: Deleta en fil från en grid
"CS0117: System.Data.DataRow innehåller inte en definition för Cols"
Googlade lite på meddelandet men hittade inte mycket. Har ni ytterligare tips till mig.....? Jag har
<% @Import Namespace="System.Data" %>
på sidan sen tidigare om det nu har någon betydelse. Prövade oxå att lägga in
<% @Import Namespace="System.Data.DataRow" %> men icke....
// SmykenSv: Deleta en fil från en grid
Bifogar iaf min lösning för eventuellt intresserade:
public void doDelete(Object sender, DataGridCommandEventArgs e) {
filtext.EditItemIndex = -1;
DataSet ds = CDCFilText();
DataRow row = ds.Tables[0].Rows[e.Item.ItemIndex];
row.Delete();
string Text = ((Label)e.Item.FindControl("ctrlName")).Text;
string url = Server.MapPath("xmldb/mediefiler/filer/");
File.Delete(url + Text);
ds.WriteXml(Server.MapPath("xmldb/mediefiler/filurl.xml"));
filtext.DataSource = CDCFilText();
filtext.DataBind();
}
Tack för all hjälp iaf
// Smyken