2012-03-09 79 views
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. 
+0

我刪除「vb.net ASP.Net」從你的頭銜,這是因爲它們的標籤,並且你已經有了他們的標籤。 – 2012-03-09 02:41:33

回答

1

我不確定未編譯的網站,但通常是「另一半」的頁面類保存在pagename.aspx.designer.vb文件中,VS在修改標記(.aspx)頁面時進行更新。

如果您在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 
+0

我看不到.aspx.designer.vb文件(discountasp.net FTP),我確信它包含Init和代碼連接代碼。如何在.aspx.vb文件中手動添加它們? – RichardTheKiwi 2012-03-09 02:29:46

+0

@Richardakacyberkiwi我在示例代碼中添加了示例代碼。這對你有幫助嗎? – GregL 2012-03-09 02:40:29

+0

@Richardakacyberkiwi另請注意,因爲'@ Page'指令的'AutoEventWireup'屬性等於'true',所以你不需要在你的Init中擁有像C#中的代碼來「連接」事件處理程序。相反,事件處理程序中的'Handles'關鍵字將爲您執行此操作。 – GregL 2012-03-09 02:43:44