现有网站没有已编译的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.
答案 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