如何在gridView中上传文件 [英] how to upload file in gridView
本文介绍了如何在gridView中上传文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
请帮助
当我点击btnUpload时,它说文件上传没有文件。
< asp:GridView ID = GridViewUploadedFile runat = server class = table table-striped table-bordered table-hover AutoGenerateColumns = False EmptyDataText = 找不到文件! 标题 = 详细信息下的属性 DataKeyNames = DocData_ID DataSourceID = SDSPU OnSelectedIndexChanged = GridViewUploadedFile_SelectedIndexChanged >
< 列 >
< asp:CommandField ShowEditButton = True / >
< asp:TemplateField >
< ItemTemplate >
< asp:LinkButton runat = server ID = lbluploaddoc 文本 = UploadDoc < span class =code-attribute> CommandName = 选择 > < / asp:LinkButton >
< / ItemTemplate >
< / asp:TemplateField >
< asp:BoundField DataField = DocData_ID HeaderText = < span class =code-attribute> InsertVisible = False ReadOnly = 真 SortExpression = DocData_I D / >
< asp:BoundField DataField = PU_Name < span class =code-attribute> HeaderText = ControlStyle-Width = 80px SortExpression = PU_Name / >
< asp:BoundField DataField = PUC_Name HeaderText = ControlStyle-Width = 80px SortExpression = PUC_Name / >
< asp:BoundField DataField = Doc_Required HeaderText = 必需 ControlStyle-Width = 221px SortExpression = Doc_Required / >
<% - < asp:BoundField DataField = Doc_DateHeaderText =Da teControlStyle-Width =80pxSortExpression =Doc_DateNullDisplayText =01/01/2099DataFormatString ={0:dd / MM / yyyy}ControlStyle-CssClass =m-wrap m-ctrl-medium date -picker/> - %>
< asp:TemplateField HeaderText < span class =code-keyword> = 日期 >
< EditItemTemplate >
< asp:TextBox < span class =code-attribute> ID = lbldocdate 宽度 = 80px class = m-wrap m-ctrl-medium date -picker runat = server 文本 =' <% #Bind( Doc_Date, {0:dd / MM / yyyy})%>' > < ; / asp:TextBox >
< / EditItemTemplate >
< / asp:TemplateField >
< asp:BoundField DataField = 备注 HeaderText = 备注 SortExpression = 备注 / >
< asp:TemplateField HeaderText = 文件列表 HeaderStyle -Width = 50% > ;
< ItemTemplate >
< asp:Hyper链接 ID = HyperLink1 目标 = _ blank runat = server 文本 =' <% #Eval( Doc_File_Name)%>'
< span class =code-attribute> NavigateUrl =' <% #Eval( 文件_Path)%>' >
< / asp:HyperLink >
< ; / ItemTemplate >
< / asp:TemplateField >
< asp:TemplateField HeaderText = 文件上传 HeaderStyle-Width = 90% >
< ItemTemplate >
<% - < asp:UpdatePanel ID =UpdatePanel2runat =serverUpdateMode =条件>
< ContentTemplate>
< / ContentTemplate>
< / asp:UpdatePanel> - %>
< asp:FileUpload ID = FUDocs runat = server / >
< asp:linkbutton ID = < span class =code-keyword> btnUpload r unat = server class = btn blue < span class =code-attribute> 文本 = 上传文档文件 OnClick = btnUpload_Click > < ; / asp:linkbutton >
< / ItemTemplate >
< / asp:TemplateField >
< /列 >
< / asp:GridView >
private void UploadDoc()
{
// 从网上获取路径。要上传的配置文件
bool blSucces = false ;
// 检查是否选择了文件上传
FUDocs = (FileUpload)GridViewUploadedFile.FindControl( FUDocs);
btnUpload =(Button)GridViewUploadedFile.FindControl( btnUpload);
if (FUDocs.HasFile)
{
try
{
string [] allowdFile = { .pdf};
// 这里我们只允许pdf文件,因此验证所选文件是否为
string FileExt = System.IO.Path.GetExtension(FUDocs.PostedFile.FileName);
bool isValidFile = allowdFile.Contains(FileExt);
if (!isValidFile)
{
lblmsg.ForeColor = System.Drawing.Color.Red;
lblmsg.Text = 请仅上传pdf;
}
其他
{
// < span class =code-comment>获取上传文件的大小,此处限制文件大小
int FileSize = FUDocs.PostedFile.ContentLength ;
if (FileSize < = 1000000 ) // 1048576 byte = 1MB
{
// 获取所选文件的文件名
filename = lblpsrno.Text + lblpuc.Text + FileExt;
// 将所选文件保存到指定位置
FUDocs.SaveAs(服务器。 MapPath(FilePath)+ filename);
lblmsg.Text = 文件上传成功!;
blSucces = true ;
}
else
{
lblmsg.Text = 附件文件大小不应大于1 MB!;
}
}
}
catch (例外情况)
{
lblmsg.Text = 上传文件时出错: + ex.Message;
}
}
else
{
lblmsg.Text = 请选择要上传的文件。;
ClientScript.RegisterStartupScript( this .GetType(), myalert, alert('请选择要上传的文件。');, true );
}
if (blSucces == true )
{
Updatefileinfo();
}
}
解决方案
在gridview下的aspx页面中添加以下代码:
< asp:templatefield >
< itemtemplate >
< asp:fileupload id = FUDocs runat = server / >
< asp:linkbutton id = btnUpload runat = 服务器 class = btn blue text = 上传文档文件 onclick = btnUpload_Click >
< / asp:linkbutton >
< / itemtemplate >
< / asp:templatefield >
在代码隐藏文件中添加以下代码:
protected void btnUpload_Click( object sender,GridViewUpdateEventArgs e)
{
int index = e.RowIndex;
GridViewRow row =(GridViewRow)gv1.Rows [index];
FileUpload fu =(FileUpload)row.FindControl( FUDocs) ;
if (fu.HasFile)
{
string file = System.IO.Path.Combine(Server.MapPath( 〜/ Images / ),fu.FileName);
fu.SaveAs(文件);
// 实现你的逻辑
}
}
Please Helpm
When i click btnUpload its says "file upload Has No File".
<asp:GridView ID="GridViewUploadedFile" runat="server" class="table table-striped table-bordered table-hover" AutoGenerateColumns="False" EmptyDataText="No files found!" Caption="Property Under Details" DataKeyNames="DocData_ID" DataSourceID="SDSPU" OnSelectedIndexChanged="GridViewUploadedFile_SelectedIndexChanged">
<Columns>
<asp:CommandField ShowEditButton="True" />
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton runat="server" ID="lbluploaddoc" Text="UploadDoc" CommandName="Select"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="DocData_ID" HeaderText="" InsertVisible="False" ReadOnly="True" SortExpression="DocData_ID" />
<asp:BoundField DataField="PU_Name" HeaderText="" ControlStyle-Width="80px" SortExpression="PU_Name" />
<asp:BoundField DataField="PUC_Name" HeaderText="" ControlStyle-Width="80px" SortExpression="PUC_Name" />
<asp:BoundField DataField="Doc_Required" HeaderText="Required" ControlStyle-Width="221px" SortExpression="Doc_Required" />
<%--<asp:BoundField DataField="Doc_Date" HeaderText="Date" ControlStyle-Width="80px" SortExpression="Doc_Date" NullDisplayText="01/01/2099" DataFormatString="{0:dd/MM/yyyy}" ControlStyle-CssClass="m-wrap m-ctrl-medium date-picker" />--%>
<asp:TemplateField HeaderText="Date">
<EditItemTemplate>
<asp:TextBox ID="lbldocdate" Width="80px" class="m-wrap m-ctrl-medium date-picker" runat="server" Text='<%# Bind("Doc_Date","{0:dd/MM/yyyy}") %>'></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="Remarks" HeaderText="Remarks" SortExpression="Remarks" />
<asp:TemplateField HeaderText="List of Files" HeaderStyle-Width="50%">
<ItemTemplate>
<asp:HyperLink ID="HyperLink1" Target="_blank" runat="server" Text='<%# Eval("Doc_File_Name") %>'
NavigateUrl='<%# Eval("File_Path") %>'>
</asp:HyperLink>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="File Upload" HeaderStyle-Width="90%">
<ItemTemplate>
<%--<asp:UpdatePanel ID="UpdatePanel2" runat="server" UpdateMode="Conditional">
<ContentTemplate>
</ContentTemplate>
</asp:UpdatePanel> --%>
<asp:FileUpload ID="FUDocs" runat="server"/>
<asp:linkbutton ID="btnUpload" runat="server" class="btn blue" Text="Upload Document File" OnClick="btnUpload_Click"></asp:linkbutton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
private void UploadDoc()
{
//Get path from web.config file to upload
bool blSucces = false;
//To check whether file is selected or not to uplaod
FUDocs = (FileUpload)GridViewUploadedFile.FindControl("FUDocs");
btnUpload = (Button)GridViewUploadedFile.FindControl("btnUpload");
if (FUDocs.HasFile)
{
try
{
string[] allowdFile = { ".pdf" };
//Here we are allowing only pdf file so verifying selected file pdf or not
string FileExt = System.IO.Path.GetExtension(FUDocs.PostedFile.FileName);
bool isValidFile = allowdFile.Contains(FileExt);
if (!isValidFile)
{
lblmsg.ForeColor = System.Drawing.Color.Red;
lblmsg.Text = "Please upload only pdf ";
}
else
{
// Get size of uploaded file, here restricting size of file
int FileSize = FUDocs.PostedFile.ContentLength;
if (FileSize <= 1000000)//1048576 byte = 1MB
{
//Get file name of selected file
filename = lblpsrno.Text + lblpuc.Text + FileExt;
//Save selected file into specified location
FUDocs.SaveAs(Server.MapPath(FilePath) + filename);
lblmsg.Text = "File upload successfully!";
blSucces = true;
}
else
{
lblmsg.Text = "Attachment file size should not be greater then 1 MB!";
}
}
}
catch (Exception ex)
{
lblmsg.Text = "Error occurred while uploading a file: " + ex.Message;
}
}
else
{
lblmsg.Text = "Please select a file to upload.";
ClientScript.RegisterStartupScript(this.GetType(), "myalert", "alert('Please select a file to upload.');", true);
}
if (blSucces == true)
{
Updatefileinfo();
}
}
解决方案
Add following code in aspx page under gridview:
<asp:templatefield> <itemtemplate> <asp:fileupload id="FUDocs" runat="server" /> <asp:linkbutton id="btnUpload" runat="server" class="btn blue" text="Upload Document File" onclick="btnUpload_Click"> </asp:linkbutton> </itemtemplate> </asp:templatefield>
Add following code in code-behind file:
protected void btnUpload_Click(object sender, GridViewUpdateEventArgs e) { int index = e.RowIndex; GridViewRow row = (GridViewRow)gv1.Rows[index]; FileUpload fu = (FileUpload) row.FindControl("FUDocs"); if (fu.HasFile) { string file = System.IO.Path.Combine(Server.MapPath("~/Images/"), fu.FileName); fu.SaveAs(file); // Implement your logic } }
这篇关于如何在gridView中上传文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文