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 に答える