2
我想寫一個簡單的ControlAdapter下面是一個非常簡化的情況,但我似乎仍然無法讓它工作。在我簡化的情況下,我只想在呈現控件之前寫出一些內容。ASP.NET自定義控件適配器沒有射擊
我定義我的控制適配器作爲這樣的:
using System.Web.UI;
using System.Web.UI.WebControls.Adapters;
namespace Test.Web.Common.Controls.ControlAdapters {
public class RadioBtnStyleAdapter : WebControlAdapter {
protected override void BeginRender(HtmlTextWriter writer) {
writer.WriteLine("<!--- CONTROL ADAPTER -->");
writer.WriteLine("<div><b>TEST</b></div");
base.BeginRender(writer);
}
}
}
- 我然後在我的Test.Web項目增加了一個App_Browsers文件的文件夾。
- 我加入下App_Browsers文件
一個default.browser文件和我default.browsers看起來像
<browsers>
<browser id="Default">
<controlAdapters>
<adapter controlType="System.Web.UI.WebControls.RadioButton" adapterType="Test.Web.Common.Controls.ControlAdapters.RadioBtnStyleAdapter"></adapter>
</controlAdapters>
</browser>
</browsers>
這是我的理解,應該是足夠的,並且框架應拿起了適配器,但它實際上似乎從未開火。
有關我可能會丟失什麼的任何建議?
更新
我可以,如果我programmaticaly上Page_Init添加適配器像這樣
HttpContext.Current.Request.Browser.Adapters["System.Web.UI.WebControls.RadioButton"] = "Test.Web.Common.Controls.ControlAdapters.RadioBtnStyleAdapter";
但沒有什麼我已閱讀顯示這是一個必要的步驟,所以我得到它的工作不相信這是正確的。
你有沒有根據標記的答案得到這個工作?我無法得到這個工作與所有的排列 - refID不起作用,也沒有上面的程序化方法爲你工作。 –
我做了,但我需要一些額外的信息,我從我的後續問題收到這裏http://stackoverflow.com/questions/33556746/render-control-in-controladapter 它的要點是從ControlAdapter VS WebControlAdapter –
謝謝。我面臨的問題是我沒有得到intellisense中的覆蓋建議。然後我重寫渲染方法,並開始工作。如果有人幫助,我會發布工作代碼。 –