1

.NET 2.0 TreeView コントローラーによって生成された HTML の一部をクリーンアップしようとしています。別のバージョン/モデルへの切り替えは、利用可能なオプションではありません。

私の最初のクラックは、拡張された TreeView を生成し、必要のないテキストを Regex で出力してページに出力するオーバーライドされた Render を備えていました。

問題は、ツリーのノードを折りたたんだり展開したりしようとしたときに、ポストバック イベントが発生しなかったことです。親の TreeView コントローラーがポストバック イベントを処理するため、これ以上オーバーライドする必要はないと考えていました。

私は何が欠けていますか?

4

2 に答える 2

2

ASP.NET CSS コントロール アダプターを使用します。

http://www.asp.net/CSSAdapters/TreeView.aspx

アダプターなしでは、どちらも HTML <table> タグを使用します。ネストされた <ul> タグが代わりにレンダリングされるように、コントロール アダプターを使用できます。次に、CSS と JavaScript の組み合わせを使用して、ツリーまたはメニューの階層の一部を表示および非表示にすることができます。CSS と JavaScript が削除されると、適応された HTML は、スクリーン リーダーなどで簡単に解釈できる単純なネストされた順序なしリストに分解されます。これは、左側のテーマ チューザーでテーマを [なし] に設定することで確認できます。

于 2008-11-04T15:28:56.353 に答える
0

コントロールがポストバックを処理するために必要なものを正規表現しました。非常に複雑な ID または runat 属性である可能性があります...それが何であれ、Web コントロールで行き詰まっている場合は、悪い html で立ち往生しています。

あなたが望むことを行う唯一の真の(そして非破壊的な)方法は、現在のコントロールを拡張することではなく、 Control Adaptersを使用することです。css を使用して位置決めを行う制御アダプタは既に存在します。 これらの CSS アダプターに関する ScottGu の投稿は次のとおりです。

于 2008-11-04T16:04:25.673 に答える