添加按钮到现有站点

时间:2012-03-09 02:22:06

标签: asp.net vb.net code-behind autoeventwireup

现有网站没有已编译的DLL,它们都是.aspx.vb和.aspx文件。

第一个问题是我可以看到

<%@ Page Title="" Language="VB" MasterPageFile="~/MasterPage.master"
MaintainScrollPositionOnPostback="true" AutoEventWireup="true"
CodeFile="ThisPageName.aspx.vb" Inherits="ThisPageName" %>

但是它继承的文件在哪里?我在C#中工作更多,在编译的类型中,我可以看到这个其他源文件

Partial Class ThisPageName

但是,要找到的部分类的另一半在哪里?

问题的原因是我正在尝试激活注释掉的<asp:button>但是当我添加事件处理程序时:

Protected Sub btnWasHidden_Click(ByVal sender As Object, ByVal e As System.EventArgs)
Handles btnWasHidden.Click

我明白了:

Compiler Error Message: BC30506: Handles clause requires a WithEvents variable
defined in the containing type or one of its base types.

E:\path\path\htdocs\ThisPageName.aspx.vb(304) : error BC30451:
Name 'btnWasHidden' is not declared.

1 个答案:

答案 0 :(得分:1)

我不确定非编译网站,但通常页面类的“另一半”保存在pagename.aspx.designer.vb文件中,VS会在您修改标记(.aspx)页面时更新。< / p>

如果您在Visual Studio的上下文之外执行此操作,则可能需要在设计器文件或主类文件(后面的代码)中手动将控件的成员变量添加到类中。

编辑:以下是.aspx.designer.vb文件通常为服务器端控件生成成员变量的方式:

Protected WithEvents <control_id> As <full namespace and type of control>

e.g。

Protected WithEvents TextBox1 As Global.System.Web.UI.WebControls.Button

在正常的代码隐藏.vb文件中遵循该模式,它应该可以工作。

在你的情况下,我相信它会是:

Protected WithEvents btnWasHidden As Global.System.Web.UI.WebControls.Button