2011-05-16 22 views
1

我已經閱讀了其他結果,但沒有具體到我的問題。一個頁面只能有一個服務器端的表單標籤

我知道有runat =「server」的兩個form標籤不起作用。我的問題是我需要母版頁文件中的表單來處理菜單等,而我的應用程序的「子」頁也需要一個表單標籤來處理它的操作。

我試圖刪除我的'孩子'頁面中的表單標籤,但代碼隱藏沒有看到我在母版頁中使用表單標籤。因此,編譯失敗(「當前上下文中不存在名稱'form1')

如何才能實現將主菜單保持在主頁工作的目標,同時保留」子「頁面編譯時出錯?

+0

你可以發佈'表格代碼? – 2011-05-16 20:03:40

回答

4

如果你去所有的子頁面(我會建議)的所有表單標籤的路線,你可以添加一個引用到主頁的表單標籤作爲一個屬性,可以訪問的子頁面。這裏將是背後的母版頁代碼:

public HtmlForm form1 { 
    get { return this.form1; } 
} 

然後,你可以從孩子頁面引用:

public void MyMethod() { 
    HtmlForm theForm = ((MyMasterPageType)this.Master).form1; 
    theForm.Controls.Add(...); 
} 

如果您在子頁面設置MasterPageType,你可以用this.Master.form1參考目錄(將此添加到子頁的標記頁):

<%@ MasterType TypeName="MyMasterPageType" %> 
+0

謝謝,這將工作出色 – Kolten 2011-05-17 22:43:28

相關問題