我试图通过asp.net中的FileUpload控件(即file.Docx等)在数据库中保存文件(图像,文字,PDF或任何类型).然后我希望将文件名显示为GridView中的链接,因此当用户单击它时,将下载该文件.
我尝试了一切.在调试中它什么都没显示.它到达Response.End的末尾但没有下载任何内容.
网格视图:
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton ID="btnLinkDownloadTender" runat="server" Text='<%# Eval("UploadedTenderPath") %>'CommandArgument='<%# Eval("UploadedTenderPath") %>' OnClick="DownloadTender"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
Run Code Online (Sandbox Code Playgroud)
上传:
protected void UploadTender()
{
try
{
if (FileUpload1.HasFile)
{
string fileName = Path.GetFileName(FileUpload1.FileName);
FileUpload1.PostedFile.SaveAs(Server.MapPath("~/UploadedTenders/") + fileName);
HdnFieldUploadedTender.Value = fileName;
ResultLabel.ResultLabelAttributes("Tender Uploaded", ProjectUserControls.Enums.ResultLabel_Color.Red);
ResultPanel.Controls.Add(ResultLabel);
}
else
{
ResultLabel.ResultLabelAttributes("No file specified", ProjectUserControls.Enums.ResultLabel_Color.Red);
ResultPanel.Controls.Add(ResultLabel);
}
}
}
Run Code Online (Sandbox Code Playgroud)
下载:
protected void DownloadTender(object sender, EventArgs e)
{
string filePath = (sender as LinkButton).CommandArgument;
Response.ContentType = ContentType;
Response.AppendHeader("Content-Disposition", "attachment; filename=" + Path.GetFileName(filePath) );
Response.Write(filePath);
Response.End();
}
Run Code Online (Sandbox Code Playgroud)
文件夹结构:
我已经为GRIDVIEW Cell#14的背景添加了一个代码,如果单元格的文本!="nbsp;" 除最后一行外,它确实有效.即使它不等于"nbsp",它也不会对最后一行着色
protected void grdviewCases_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
foreach (GridViewRow gr in grdviewCases.Rows)
{
if (gr.Cells[14].Text != " ")
{
gr.Cells[14].BackColor = Color.Red; ;
gr.Cells[14].ForeColor = Color.WhiteSmoke;
}
}
}
}
Run Code Online (Sandbox Code Playgroud) 我比较这两次,如果它小于或大于彼此,但它没有.为什么?
if(@OpeningTime < @ExpiryTime)
Begin
Raiserror('Opening time cannot be smaller than expiry time', 16,10);
return
End
Run Code Online (Sandbox Code Playgroud)
两者都是varchar(10)
时间过去就像早上10点和上午11点