31. marts 2006 - 13:19Der er
18 kommentarer og 1 løsning
Prompt ved sletning af en fil
Jeg har en upload-fil program. Programmet består af en upload formular og et view, hvor man kan se, slette eller downloade alle uploadede filer. En del af programmet der sletter filer i oversigten ser sådan ud: private void DeleteFile(int fileId) { string cmdText = "DELETE FROM Files WHERE ID = @ID";
using(OleDbConnection con = new OleDbConnection(ConnectionString)) using(OleDbCommand cmd = new OleDbCommand(cmdText, con)) { cmd.Parameters.Add("@ID", OleDbType.Integer).Value = fileId; con.Open(); cmd.ExecuteNonQuery(); } Response.Redirect("default.aspx"); }
Det som jeg gerne ville have er, at et prompt spørger noget i denne retning: "Vil du virkelig slette denne fil?". På nuværende tidspunkt slettes bare filen ved at trykke på slet.
Støv, fibre og metalliske partikler kan påvirke både uptime, levetid og driftssikkerhed. Derfor arbejder flere datacentre systematisk med contamination control.
du skal have det f.eks. på en knap: <asp:Button ID="Button2" runat="server" OnClientClick="return confirm('Er du sikker på at du ønsker at slette ?');" OnClick="Slet_Click" Text="Slet" />
Der genereres et view og filnavn, slet og download er i form af tekst-link og der findes ikke noget knap. Heller ikke i aspx-fil. Koden som jeg har sendt er en del af file.aspx.cs. Der er 3 aspx filer. Alle bruger Codebehind og jeg kunne ikke finde noget kontrol for sletning bortset fra den som findes i Codebehind. Men file.aspx.cs indeholder også denne stumpe kode:
private void HandleFileAction(int fileId, string mode) { switch(mode) { case "view": ViewFile(fileId, false); break; case "delete": DeleteFile(fileId); break; case "download": ViewFile(fileId, true); break; default: Response.Redirect("default.aspx"); break; } }
using System; using System.Collections; using System.ComponentModel; using System.Data; using System.Drawing; using System.Web; using System.Web.SessionState; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.HtmlControls; using System.Data.OleDb;
rd.Close(); } } // Følgende metode skulle gerne komme med et promp "Vil du virkelig slette...", men det virker ikke // public void MsgBox(string msg) // { // Page.RegisterStartupScript("msg_script", String.Format("<script language='javascript'>alert('{0}');</script>", msg)); // } private void DeleteFile(int fileId) { // MsgBox("Vil du...!"); string cmdText = "DELETE FROM Files WHERE ID = @ID"; using(OleDbConnection con = new OleDbConnection(ConnectionString)) using(OleDbCommand cmd = new OleDbCommand(cmdText, con)) { cmd.Parameters.Add("@ID", OleDbType.Integer).Value = fileId; con.Open(); cmd.ExecuteNonQuery(); } Response.Redirect("default.aspx"); } #region Web Form Designer generated code override protected void OnInit(EventArgs e) { // CODEGEN: This call is required by the ASP.NET Web Form Designer. InitializeComponent(); base.OnInit(e); } /// <summary> /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// </summary> private void InitializeComponent() { this.Load += new EventHandler(this.Page_Load); this.Error += new EventHandler(this.Page_Error); } #endregion } }
Den kan den ikke rigtig. Når du går ind på aspx siden kan du vælge mellem design og html view i bunden af siden. her kan du se aspx koden. Det er den jeg skal bruge.
default.aspx.cs: --- using System; using System.Collections; using System.ComponentModel; using System.Data; using System.Drawing; using System.Web; using System.Web.SessionState; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.HtmlControls; using System.Text; using System.Data.OleDb;
namespace Stardeveloper.UploadAccess { public class DefaultForm : GenericPage { protected const string CmdText = "SELECT ID, FileName, FileSize, ContentType, Dato FROM Files ORDER BY DATO DESC";
#region Web Form Designer generated code override protected void OnInit(EventArgs e) { // // CODEGEN: This call is required by the ASP.NET Web Form Designer. // InitializeComponent(); base.OnInit(e); }
/// <summary> /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// </summary> private void InitializeComponent() { this.Load += new System.EventHandler(this.Page_Load);
default.aspx.cs: --- using System; using System.Collections; using System.ComponentModel; using System.Data; using System.Drawing; using System.Web; using System.Web.SessionState; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.HtmlControls; using System.Text; using System.Data.OleDb;
namespace Stardeveloper.UploadAccess { public class DefaultForm : GenericPage { protected const string CmdText = "SELECT ID, FileName, FileSize, ContentType, Dato FROM Files ORDER BY DATO DESC";
buffer.Append("<tr><td><a href=\"file.aspx?file_id="); buffer.Append(fileId); buffer.Append("&mode=view\">"); buffer.Append(fileName); buffer.Append("</a> | <a " onclick=\"return confirm('Er du sikker på at du ønsker at slette ?');\" href=\"file.aspx?file_id="); buffer.Append(fileId); buffer.Append("&mode=delete\">Slet</a> •"); buffer.Append(" <a href=\"file.aspx?file_id="); buffer.Append(fileId); buffer.Append("&mode=download\">Download</a> "); buffer.Append("</td><td align=\"center\">"); buffer.Append(fileLength); buffer.Append("</td><td align=\"center\">"); buffer.Append(contentType); buffer.Append("</td><td align=\"center\">"); buffer.Append(dato); buffer.Append("</td></tr>"); }
rd.Close(); buffer.Append("</table>"); }
return buffer.ToString(); }
#region Web Form Designer generated code override protected void OnInit(EventArgs e) { // // CODEGEN: This call is required by the ASP.NET Web Form Designer. // InitializeComponent(); base.OnInit(e); }
/// <summary> /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// </summary> private void InitializeComponent() { this.Load += new System.EventHandler(this.Page_Load);
Og den nye er: ..... buffer.Append("&mode=view\">"); buffer.Append(fileName); buffer.Append("</a> | <a " onclick=\"return confirm('Er du sikker på at du ønsker at slette ?');\" href=\"file.aspx?file_id="); buffer.Append(fileId); buffer.Append("&mode=delete\">Slet</a> •"); buffer.Append(" <a href=\"file.aspx?file_id="); .....
Jeg har tilføjet din kode, men desværre får jeg compileringsfejl: Der mangler ')' eller mangler ';' og lignende :-(
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.