Ich habe Probleme mit meiner Datentabelle, im Moment ist meine Datentabelle mit Werten aus meiner Datenbank gefüllt. Wenn ich eine neue Datei in die Datenbank hochlade, wird meine Datentabelle automatisch aktualisiert und zeigt an, wofür sie aktualisiert wurde. Aber jetzt habe ich eine Schaltfläche, die einen Datensatz aus der Datenbank löscht, der mit der Datentabelle, die ich habe, korreliert ist. Das Problem ist im Moment, dass nachdem ich den Datensatz gelöscht habe, die Datentabelle nicht aktualisiert wird und der Datensatz dort immer noch angezeigt wird. Ich habe überprüft, dass der Datensatz gelöscht wurde, nur dass meine Datentabelle nicht aktualisiert wird. (Es wird nur aktualisiert, nachdem ich die Seite aktualisiert habe). Hier sind meine Codes für die Datentabelle und TasteDatatable nicht aktualisieren nach dem Löschen
Datentabelle löschen:
<asp:GridView ID="FileTableView" CssClass="datagrid" HeaderStyle-CssClass="datagridHeader" RowStyle-CssClass="datagridRows" runat="server" AutoGenerateColumns="False" DataKeyNames="fileid, filename">
<Columns>
<asp:TemplateField HeaderText="Master Folder">
<ItemTemplate>
<asp:LinkButton ID="FileLinkButton" CommandName="ShowPopup" OnCommand="File_Command" CommandArgument='<%# Eval("fileid") %>' runat="server" Text='<%# Eval("filename") %>'></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
Filling Daten in die Datentabelle
DataTable dtFile;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
// Fill up file and folder data on the display
FillDataFile();
}
}
private void FillDataFile()
{
dtFile = new DataTable();
SqlDataReader reader = MBFile.GetFileToDisplay(Context.User.Identity.Name);
dtFile.Load(reader);
if (dtFile.Rows.Count > 0)
{
FileTableView.DataSource = dtFile;
FileTableView.DataBind();
}
}
Schaltfläche Löschen
protected void File_Command(object sender, CommandEventArgs e)
{
string command = e.CommandName;
MBFile file;
switch (command)
{
case "ShowPopup":
System.Diagnostics.Debug.WriteLine("Running");
long fileid = Convert.ToInt64(e.CommandArgument.ToString());
System.Diagnostics.Debug.WriteLine("FileID: " + fileid);
file = MBFile.RetrieveFile(Context.User.Identity.Name, fileid);
LblFileID.Text = fileid.ToString();
LblFileName.Text = file.fileName;
LblFileType.Text = file.fileType;
LblFileSize.Text = file.fileSize.ToString();
ScriptManager.RegisterStartupScript(this, this.GetType(), "myModal", "showPopup();", true);
break;
case "Delete":
System.Diagnostics.Debug.WriteLine("Deleting");
MBFile.DeleteFile(Context.User.Identity.Name, Convert.ToInt64(LblFileID.Text));
FillDataFile();
break;
case "Download":
System.Diagnostics.Debug.WriteLine("Downloading");
DownloadFileContent(Context.User.Identity.Name, Convert.ToInt64(LblFileID.Text));
Page.ClientScript.RegisterStartupScript(Page.GetType(), "Delete Status", "<script language='javascript'>alert('" + "File has been deleted" + "')</script>");
break;
}
}
Haben Sie nur einen Datensatz und diesen Datensatz gelöscht? – Steve
DataTable dtFile; (Die Zeile oberhalb von page_load) wird anderswo als in der FillDataFile() -Methode referenziert? – objectNotFound