如何在gridView中上传文件 [英] how to upload file in gridView

查看:92
本文介绍了如何在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:LinkBut​​ton runat = server ID = lbluploaddoc 文本 = UploadDoc < span class =code-attribute> CommandName = 选择 > < / asp:LinkBut​​ton >
< / 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆