我的数据表有问题,此刻我的数据表中填充了来自我的数据库的值。当我将一个新文件上传到数据库时,我的数据表会自动更新并显示它已更新的内容。但是现在我有一个按钮,它从数据库中删除一条与我拥有的数据表相关的记录。现在的问题是,我删除记录后,数据表不刷新,它仍然显示在那里的记录。我已经验证记录已被删除,只是我的数据表不会更新(它只会在我刷新页面后更新)。下面是我的代码的数据表,以及删除按钮数据表在删除后不更新
数据表:
<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>
填充数据到数据表
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();
}
}
删除按钮
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;
}
}
你有只有一条记录,并删除该记录? – Steve
DataTable dtFile; (page_load之上的那一行)是在除FillDataFile()方法之外的其他地方引用的吗? – objectNotFound