1

有一个没有编译 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.
4

1 回答 1

1

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

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

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

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

例如

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

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

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

Protected WithEvents btnWasHidden As Global.System.Web.UI.WebControls.Button
于 2012-03-09T02:26:58.137 回答