VB.Net处理后面代码中的按钮单击事件

时间:2016-04-01 21:13:32

标签: asp.net vb.net events buttonclick handles

我的按钮点击事件出现问题。我需要将此按钮从一个页面添加到另一个页面,因此自然会将其复制并在click事件方法中更改变量以匹配新页面。在HTML方面我也在那里添加了按钮(说明如果有人想知道我是否忘记了那部分)。

一切都与其他页面相同......问题是......当我尝试运行它来测试按钮时,我得到一个构建错误,没有显示错误。有一次我设法得到一个错误,声明“Handles子句需要在包含类型或其基类型中定义一个WithEvents变量。”所以我注释掉了方法的句柄部分并运行了!除了...按钮不起作用。我已经尝试了一些建议,说重新启动IDE,并且有人也提到注释掉句柄部分。有什么我想念的吗?

 <tr>
                    <td style="width: 209px" valign="middle" align="left"></td>
                    <td style="width: 7px;" valign="middle"></td>
                    <td valign="bottom" align="left">
                        <br>
                        <asp:Button ID="btnSaveAsExcel" runat="server" Width="264px" Text="Export to Excel"></asp:Button>
                    </td>
                    <td valign="middle" align="left"></td>
                </tr>



Private Sub btnSaveAsExcel_Click(sender As Object, e As EventArgs) Handles btnSaveAsExcel.Click
        If dgFacilitySummary.Visible Then

            Dim DummydgFacilitySummary As New DataGrid
            DummydgFacilitySummary.DataSource = Session("dsFacilitySummary").tables(0)
            DummydgFacilitySummary.DataBind()

            HttpContext.Current.Response.ContentType = "application/vnd.ms-excel"
            HttpContext.Current.Response.AddHeader("content-disposition", "attachment;filename=" & "Faci+lity Summary Report" & ".xls")
            HttpContext.Current.Response.Charset = ""

            EnableViewState = False

            Dim sw As New StringWriter()
            Dim hw As New HtmlTextWriter(sw)

            DummydgFacilitySummary.RenderControl(hw)
            HttpContext.Current.Response.Write(sw.ToString())
            HttpContext.Current.Response.End()

        ElseIf dgFacilities.Visible Then
            Dim DummydgFacilities As New DataGrid
            DummydgFacilities.DataSource = Session("dsFacilityMatches").tables(0)
            DummydgFacilities.DataBind()

            HttpContext.Current.Response.ContentType = "application/vnd.ms-excel"
            HttpContext.Current.Response.AddHeader("content-disposition", "attachment;filename=" & "Facility Summary Report" & ".xls")
            HttpContext.Current.Response.Charset = ""

            EnableViewState = False

            Dim sw As New StringWriter()
            Dim hw As New HtmlTextWriter(sw)

            DummydgFacilities.RenderControl(hw)
            HttpContext.Current.Response.Write(sw.ToString())
            HttpContext.Current.Response.End()
        End If
    End Sub

两者都是它在另一个页面上的确切方式,它可以在那里工作。

1 个答案:

答案 0 :(得分:0)

尝试从代码隐藏文件中删除btnSaveAsExcel_Click()方法。然后在代码上方IDE左上角的下拉列表中选择btnSaveAsExcel。这将填充右上角的下拉列表,其中包含btnSaveAsExel按钮的所有事件。选择OnClick事件,这将创建一个btnSaveAsExcel_Click()方法。

仅复制标记然后使用我刚才描述的方法在代码隐藏文件中创建事件处理程序可能是个好主意。