【问题标题】:Export a gridview with link button to excel将带有链接按钮的gridview导出到excel
【发布时间】:2014-05-01 21:26:42
【问题描述】:

我有一个带有 Onclick 事件的链接按钮的 gridview 来打开一个 .pdf 文件。文件路径是在.aspx页面的Onclick事件调用的代码后面的函数下动态生成的。我可以将其导出为 excel。该列以超链接的形式出现。但我的问题是未启用 Onclick 事件,或者它没有与其余数据一起导出到 Excel 文件。

在我的 GridView(名为 GVActiveMEOs)中,我将 DataKeyNames 设置为 DataKeyNames="MEO_NR"。在asp:TemplateField 里面我有这个asp:LinkButton

<asp:linkbutton id="lnk" runat="server" onclick="OpenMEO" 
        commandargument='<%# Eval("MEO_NR") %>'
        text='<%# Eval("MEO_NR") %>'>
</asp:linkbutton>

代码隐藏

Protected Sub OpenMEO(ByVal sender As Object, ByVal e As EventArgs) 
    Dim strConnString As String = ConfigurationManager.ConnectionStrings("AEM_ESS001_DEVConnectionString").Connect‌​ionString 
    Dim con As New SqlConnection(strConnString) 
    Dim cmd As New SqlCommand 
    Dim MPath As String 
    'Dim index As Integer = GVActiveMEOs.SelectedRow.RowIndex 
    'Dim meonum As String = GVActiveMEOs.SelectedDataKey.Value 
    Dim meonum As String = DirectCast(sender, LinkButton).CommandArgument
    cmd.CommandType = CommandType.Text 
    cmd.CommandText = "Select MEOPATH from dbo.udf_GetMEOpath(@myid)" 
    cmd.Parameters.AddWithValue("@myid", meonum) 
    cmd.Connection = con 
    Try 
        con.Open() 
        MPath = cmd.ExecuteScalar() 
        'MsgBox(MPath) 
        ' Dim script As String = "window.open('" & MPath & "', 'Popup', '_newtab');"
        'Page.ClientScript.RegisterStartupScript(Me.[GetType](), "open", script, True) 
        Response.Redirect(MPath)
    End Try
End Sub

谁能帮帮我。 Rgds,苏玛

【问题讨论】:

  • 请分享您的标记和代码隐藏
  • 我的aspx页面如下:
  • 输入 MEO_ACTIVITY 的日期范围:Start_Date: End_Date:

标签: asp.net excel gridview export


【解决方案1】:

许多方法可以实现这一点。

1.更改asp:LinkButton标记并指定CommandName

<asp:linkbutton id="lnk" runat="server" onclick="OpenMEO" 
        commandargument='<%# Eval("MEO_NR") %>'
        commandname="Select"
        text='<%# Eval("MEO_NR") %>'>
</asp:linkbutton>

2.创建RowCommandEvent

标记

OnRowCommand="GVActiveMEOs_OnRowCommand" 

代码隐藏

Protected Sub gridview1_RowCommand(sender As Object, e As GridViewCommandEventArgs)
    'custom code
    Dim meonum As String = DirectCast(e.CommandSource, LinkButton).CommandArgument
    'custom code
End Sub

永远记住,点击的行不是SelectedRow,除非你将CommandName指定为CommandName="Select"

【讨论】:

  • 嗨,naveen,感谢您抽出宝贵时间。我可以在gridview中单击打开pdf。我的问题是在我将gridview导出到excel之后,超链接功能丢失了!!!看起来 onclick 事件没有转移到 Excel 工作表。感谢任何建议。 Rgds,苏玛
  • 当我将光标放在从导出创建的 Excel 表中的链接上时,我看到的只是:javascript:__doPostBack('ctl00$MainContent$GVActiveMEOs$ctl02$lnk','')。不执行行命令。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-25
相关资源
最近更新 更多