返回"System.Web.UI.WebControls.DataControlFieldCell".字符串“文件名" [英] returns " System.Web.UI.WebControls.DataControlFieldCell" for the string " filename"

查看:118
本文介绍了返回"System.Web.UI.WebControls.DataControlFieldCell".字符串“文件名"的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

你好,

对于下载文件,我喜欢使用在网上找到的以下代码.所以我做了一个网格视图,第一列是文件名.

现在,当我运行该应用程序时,出现消息"此文件不存在.".

因此,为了检查我的代码,我添加了语句Response.Write(filename)<code> after statement <code>string filename = rowItem.Cells[0].ToString(),因此在运行该应用程序后,它将为值"filename"返回System.Web.UI.WebControls.DataControlFieldCell.

请帮助出什么问题.
-------------------------------------------------- ----

Hello,

For Download a file I like to use the below code that I found in the net. So I have made a grid view that first column is file name.

Now when I run the application, I have the message "This file does not exist.".

So for checking my code I have added statement Response.Write(filename)<code> after statement <code>string filename = rowItem.Cells[0].ToString(), so after running the application it returns System.Web.UI.WebControls.DataControlFieldCell for the value " filename".

Please help what is the problem.
------------------------------------------------------

protected void lnkPath_OnClick(object sender, EventArgs e)
    {
        GridViewRow datarow = (GridViewRow)(((Control)sender).NamingContainer);
        int i = datarow.RowIndex;
        foreach (GridViewRow rowItem in grdv.Rows)
        {
            if (rowItem.RowIndex == i)
            {                
                string filename = rowItem.Cells[0].ToString();
                if (filename != "")
                {
                    string path = Server.MapPath(filename);
                    System.IO.FileInfo file = new System.IO.FileInfo(path);
                    if (file.Exists)
                    {
                        Response.Clear();
                        Response.AddHeader("Content-Disposition", "attachment; filename=" + file.Name);
                        Response.AddHeader("Content-Length", file.Length.ToString());
                        Response.ContentType = "application/octet-stream";
                        Response.WriteFile(file.FullName);
                        Response.End();
                    }
                    else
                    {
                        Response.Write("This file does not exist.");
                    }
                }
            }
        }
    }



----------------------------------------------



----------------------------------------------

<asp:GridView ID="grdv" runat="server" DataSourceID="SqlDataSource1" AutoGenerateColumns="false">
<Columns>
<asp:TemplateField HeaderText="Title" >
<ItemTemplate>
<asp:LinkButton ID="lnkPath" runat="server" Text= '<%# Bind("Coach_First") %>' OnClick="lnkPath_OnClick" ></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="DocsID" >
<ItemTemplate>
<asp:Label ID="lblDocsID" runat="server" Text='<%# Bind("CoachId") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="ProjectID" >
<ItemTemplate>
<asp:Label ID="lblProjectID" runat="server" Text='<%# Bind("Coach_Last") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Webpath" >
<ItemTemplate>
<asp:Label ID="lblWebpath" runat="server" Text='<%# Bind("Coach_Email") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField> 
</Columns>
</asp:GridView>
<asp:SqlDataSource ConnectionString="<%$ ConnectionStrings:conn %>" ID="SqlDataSource1"

runat="server" SelectCommand="SELECT top 5 CoachId, Coach_First, Coach_Last, Coach_Email from tblCoach">
</asp:SqlDataSource>

推荐答案

ConnectionStrings:conn%>" ID =" 运行 =" SelectCommand =" < /asp:SqlDataSource >
ConnectionStrings:conn %>" ID="SqlDataSource1" runat="server" SelectCommand="SELECT top 5 CoachId, Coach_First, Coach_Last, Coach_Email from tblCoach"> </asp:SqlDataSource>


之所以返回System.Web.UI.WebControls.DataControlFieldCell的原因是因为此行.
The reason why its returning System.Web.UI.WebControls.DataControlFieldCell is because of this line.
string filename = rowItem.Cells[0].ToString();


尝试将其替换为


Try replacing it with

string filename = rowItem.Cells[0].Text;


这篇关于返回"System.Web.UI.WebControls.DataControlFieldCell".字符串“文件名"的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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