カスタムコントロールで包み:
:あなたはページに固有のコードで出力を操作することができるようにしたい場合は、のようなものを、イベントを追加
public class MyCMSControl: CommercialCMSControl
{
protected override void Render(HtmlTextWriter writer)
{
StringBuilder stringBuilder = new StringBuilder();
StringWriter stringWriter = new StringWriter(stringBuilder);
using (HtmlTextWriter myWriter = new HtmlTextWriter(stringWriter))
{
base.Render(myWriter);
string newOutput;
// the original output is in stringBuilder, do whatever you want, and
// put it in newOutput
writer.Write(newOutput);
}
}
}
public delegate void OnRenderHandler(object sender, string originalOutput, HtmlTextWriter writer)
public OnRenderHandler OnRender;
...
/// before writer.Write above...
if (OnRender!=null) {
OnRender(this,stringBuilder.ToString(),writer);
}
デザイナーでカスタムバージョンを利用できるようにするには、web.configに何かが必要です。
<pages>
<controls>
<add namespace="My.Control.Namespace" assembly="My.Control.Assembly" tagPrefix="MyControlsPrefix"/>
</controls>
</pages>
レンダリング後にhtmlを変更するにはjavascriptを使用できますか? – Clicktricity
これは私の最初の考えでしたが、正直言って、それはレイアウトにわずかに影響するので良く見えません。 – Mantorok