简体   繁体   English

当我单击gridview asp.net中的下载按钮时,没有任何反应

[英]nothing happened when i click download button in gridview asp.net

i try to download file on my database in gridview, but nothing happened when i click download link.. 我尝试在gridview中的数据库上下载文件,但是单击下载链接时没有任何反应。

this my aspx.code 这是我的aspx.code

<asp:GridView CssClass="table table-striped responsive" ID="GridView1" runat="server" AllowSorting="True" AllowPaging="True" AutoGenerateColumns="False" DataKeyNames="NoSurat" OnPageIndexChanging="GridView1_PageIndexChanging" OnRowDeleting="GridView1_RowDeleting" OnSorting="GridView1_Sorting" PageSize="5">
                    <Columns>
                        <asp:TemplateField HeaderText="No Surat">
                            <ItemTemplate>
                                <asp:Label ID="lblIDs" runat="server" Text='<%# Eval("NoSurat")%>'></asp:Label>
                            </ItemTemplate>
                            <EditItemTemplate>
                                <asp:Label ID="lblID" runat="server" Text='<%# Eval("NoSurat")%>'></asp:Label>
                            </EditItemTemplate>
                        </asp:TemplateField>
                        <asp:BoundField DataField="Perihal" HeaderText="Perihal" SortExpression="Perihal" />
                        <asp:BoundField DataField="AsalSurat" HeaderText="Asal Surat" SortExpression="AsalSurat" />
                        <asp:BoundField DataField="IsiSurat" HeaderText="Isi Surat" SortExpression="IsiSurat" />
                        <asp:BoundField DataField="tglsurat_terima" HeaderText="Tanggal Diterima" SortExpression="tglsurat_terima" />
                        <asp:BoundField DataField="tglsurat_kirim" HeaderText="Tanggal Dikirim" SortExpression="tglsurat_kirim" />
                        <asp:BoundField DataField="keterangan" HeaderText="Ket Surat" SortExpression="keterangan" />
                        <asp:BoundField DataField="namesScan" HeaderText="Nama File" SortExpression="namesScan" />                     
                        <asp:BoundField DataField="tglupload" HeaderText="Tanggal Upload Surat" SortExpression="tglupload" />

                        <asp:TemplateField HeaderText="Actions" ShowHeader="False">
                            <ItemTemplate>
                                <asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False" CommandName="Delete" CssClass="btn btn-danger glyphicon glyphicon-trash" OnClientClick="return confirm('Anda yakin untuk menghapus?'); "></asp:LinkButton>
                                <asp:LinkButton ID="lnkDownload" runat="server" Text="Download" OnClick="lnkDownload_Click"></asp:LinkButton>  
                            </ItemTemplate>
                        </asp:TemplateField>
                    </Columns>
                </asp:GridView>

And my code behind 还有我的代码

protected void lnkDownload_Click(object sender, EventArgs e)
    {
        con1 = ConfigurationManager.ConnectionStrings["MyConnection"].ConnectionString;
        LinkButton lnkbtn = sender as LinkButton;
        GridViewRow gvrow = lnkbtn.NamingContainer as GridViewRow;
        string fileid = Convert.ToString(GridView1.DataKeys[gvrow.RowIndex].Value.ToString());
        string name, type;
        using (SqlConnection con = new SqlConnection(con1))
        {
            using (SqlCommand cmd = new SqlCommand())
            {
                cmd.CommandText = "select namesScan, contentType, DataSurat from SrtMasuk where NoSurat=@NoSurat";
                cmd.Parameters.AddWithValue("@NoSurat", fileid);
                cmd.Connection = con;
                con.Open();
                SqlDataReader dr = cmd.ExecuteReader();
                if (dr.Read())
                {
                    Response.ContentType = dr["contentType"].ToString();
                    Response.AddHeader("Content-Disposition",
                                        "attachment;filename=\"" + dr["namesScan"] + "\"");
                    Response.BinaryWrite((byte[])dr["DataSurat"]);
                    Response.End();
                }
            }
        }
    }   

my connection strings 我的连接字符串

<connectionStrings>
<add name="MyConnection" connectionString="Data Source=HABIBDEA;Initial Catalog=kopma;Persist Security Info=True;User ID=sa;Password=ilovedea1" providerName="System.Data.SqlClient" />
<add name="kopmaConnectionString" connectionString="Data Source=HABIBDEA;Initial Catalog=kopma;User ID=sa;Password=ilovedea1"
  providerName="System.Data.SqlClient" />
<add name="kopmaConnectionString2" connectionString="Data Source=HABIBDEA;Initial Catalog=kopma;Persist Security Info=True;User ID=sa;Password=ilovedea1"
  providerName="System.Data.SqlClient" />

if i try to download, there like no event / nothing happened, please where the code is wrong?, i think no code is incorrect, but why nothing happened while i click download ? 如果我尝试下载,没有事件/什么也没有发生,请在代码错误的地方?,我认为没有代码不正确,但是为什么单击下载时什么也没发生?

Add to your GridView the Property 将属性添加到GridView

 OnRowCommand="GridView1_RowCommand"

Add to your CodeBehind 添加到您的CodeBehind

protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
       {
           switch (e.CommandName)
           {
               case "Download":
                   string fileid = e.CommandArgument;

and change your LinkButton to 并将您的LinkBut​​ton更改为

<asp:LinkButton ID="lnkDownload" runat="server" CommandArgument='<%# Eval("NoSurat") %>'
Text="Download" CommandName="Download"></asp:LinkButton>

You can use rowCommand in grid view... 您可以在网格视图中使用rowCommand ...

<asp:GridView CssClass="table table-striped responsive" ID="GridView1" runat="server" AllowSorting="True" AllowPaging="True" AutoGenerateColumns="False" DataKeyNames="NoSurat" OnPageIndexChanging="GridView1_PageIndexChanging" OnRowDeleting="GridView1_RowDeleting" OnSorting="GridView1_Sorting"  onrowcommand="GridView1_RowCommand" PageSize="5">
                    <Columns>
                        <asp:TemplateField HeaderText="No Surat">
                            <ItemTemplate>
                                <asp:Label ID="lblIDs" runat="server" Text='<%# Eval("NoSurat")%>'></asp:Label>
                            </ItemTemplate>
                            <EditItemTemplate>
                                <asp:Label ID="lblID" runat="server" Text='<%# Eval("NoSurat")%>'></asp:Label>
                            </EditItemTemplate>
                        </asp:TemplateField>
                        <asp:BoundField DataField="Perihal" HeaderText="Perihal" SortExpression="Perihal" />
                        <asp:BoundField DataField="AsalSurat" HeaderText="Asal Surat" SortExpression="AsalSurat" />
                        <asp:BoundField DataField="IsiSurat" HeaderText="Isi Surat" SortExpression="IsiSurat" />
                        <asp:BoundField DataField="tglsurat_terima" HeaderText="Tanggal Diterima" SortExpression="tglsurat_terima" />
                        <asp:BoundField DataField="tglsurat_kirim" HeaderText="Tanggal Dikirim" SortExpression="tglsurat_kirim" />
                        <asp:BoundField DataField="keterangan" HeaderText="Ket Surat" SortExpression="keterangan" />
                        <asp:BoundField DataField="namesScan" HeaderText="Nama File" SortExpression="namesScan" />                     
                        <asp:BoundField DataField="tglupload" HeaderText="Tanggal Upload Surat" SortExpression="tglupload" />

                        <asp:TemplateField HeaderText="Actions" ShowHeader="False">
                            <ItemTemplate>
                                <asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False" CommandName="Delete" CssClass="btn btn-danger glyphicon glyphicon-trash" OnClientClick="return confirm('Anda yakin untuk menghapus?'); "></asp:LinkButton>
                                <asp:LinkButton ID="lnkDownload" runat="server" Text="Download"   CommandName="Download" ></asp:LinkButton>  
                            </ItemTemplate>
                        </asp:TemplateField>
                    </Columns>
                </asp:GridView>


 protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
   {
        if (e.CommandName == "Download")
        {
            con1 = ConfigurationManager.ConnectionStrings["MyConnection"].ConnectionString;
        LinkButton lnkbtn = sender as LinkButton;
        GridViewRow gvrow = lnkbtn.NamingContainer as GridViewRow;
        string fileid = Convert.ToString(GridView1.DataKeys[gvrow.RowIndex].Value.ToString());
        string name, type;
        using (SqlConnection con = new SqlConnection(con1))
        {
            using (SqlCommand cmd = new SqlCommand())
            {
                cmd.CommandText = "select namesScan, contentType, DataSurat from SrtMasuk where NoSurat=@NoSurat";
                cmd.Parameters.AddWithValue("@NoSurat", fileid);
                cmd.Connection = con;
                con.Open();
                SqlDataReader dr = cmd.ExecuteReader();
                if (dr.Read())
                {
                    Response.ContentType = dr["contentType"].ToString();
                    Response.AddHeader("Content-Disposition",
                                        "attachment;filename=\"" + dr["namesScan"] + "\"");
                    Response.BinaryWrite((byte[])dr["DataSurat"]);
                    Response.End();
                }
            }
        }
        }
    }  
</code>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 c# asp.net 当我单击 gridview 中的按钮时,如何更改按钮的图像 url(其类型为图像) - c# asp.net how can i change the image url of button (it's type is image ) when i click the button in gridview 在gridview中单击“编辑”按钮时,如何调用“删除行”事件? asp.net C# - How can I call “delete row ” event when i click on “edit” button in gridview? asp.net C# 单击Gridview行在asp.net中下载特定文件 - Click Gridview row download particular file in asp.net 单击asp.net中的gridview编辑按钮时如何禁用导出按钮 - How to Disable export button when click gridview edit button in asp.net 当我在asp.net中单击gridview上的标题文本时,如何对gridview进行排序 - How to sorting the gridview when i click the header text on gridview in asp.net 当在ASP.NET中单击按钮后UpdatePanel进行回发时,GridView列将变为空 - GridView Column is becoming Empty, When UpdatePanel does postback after button click in ASP.NET 在 asp.net 中单击按钮从嵌套的 gridview 访问它时,下拉列表值返回 0 - Dropdownlist value returns 0 when accesing it from nested gridview on button click in asp.net 按钮单击后不显示ASP.NET GridView - ASP.NET GridView Not Appearing After Button Click ModalPopupExtender 在 ASP.NET gridview 图像按钮单击中未触发 - ModalPopupExtender is not triggered in ASP.NET gridview image button click ASP.Net Gridview不能在单击按钮时重新绑定数据 - ASP.Net Gridview not rebind data on button click
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM