2010-11-15 58 views
0

在最近的文章中,我認爲有必要訪問使用聲明語法身體屬性,請參閱編程訪問控件從基地到派生?

Contentplaceholder for replacing attributes?

我認爲第一個建議解決我的問題。但是,語法混淆了編輯器,這是不可接受的。

我對可行解決方案的假設是在代碼中進行更改。從System.Web.UI.Page派生一個具有擴展功能的類。但是,我希望設計人員仍然可以使用聲明性語法來設置body標籤。

換句話說,

  1. 我不希望有改變我的aspx網頁中的任何代碼,不同的是它們從基地

  2. 得到我希望能夠設置這些屬性使用聲明性語法,僅通過在派生頁面中添加標籤

我並不是很清楚如何去做這件事,因爲它不完全符合OOP段digm,我不確定需要更改的地方。

最初的假設,

我可以使用的FindControl在基地看到,如果佔位符已被添加。但是,不確定在頁面處理生命週期的哪一點,我可以使用這個findcontrol。我需要在呈現之前設置主體,但也可以從聲明代碼中獲取某些內容。我希望能夠在我的aspx頁面中編輯一個用戶定義的標籤,它將改變母版頁中正文的類。

回答

1

爲什麼不創建自定義服務器控件(稱爲類似BodyAttributeManager),它不呈現任何內容,只是查看其屬性並以編程方式將它們添加到PreRender上的body元素上?

1

該示例中提到的嵌套標記不起作用。 ASP.NET不支持。 @ jball的建議是一個好主意;擁有一個能夠編程影響身體代碼設置(這是這裏唯一真正的解決方案)的身體以外的類,會給你你正在尋找的東西。

HTH。