問題タブ [htmltextwriter]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
actionscript-3 - Actionscript3.0の壊れたhtmlText-string.substringを使用した増分表示からのファンキーな表示
これは、actionScript3.0のtextField.htmlTextと私が作成しているクラスの問題です。
クラス全体を投稿しないように、私は問題を、ばかげてほとんど克服できない問題のように見えるものに要約することができました。TextFields(具体的には、ActionScriptで作成されたもの)は、によって作成されたタイプ書き込み効果で耐えられないほど苦労しているようです。
ここで、長さは増え続ける増分です。ただし、より具体的な例を見てみましょう。まず、.flaファイルのフレーム1にランダムな文字列があります。
私のクラスを使用すると、この文字列を受け取り、Xキーワードの場合、それらの単語の周りにYHTMLタグを適用します。
これはText0を取り(ここではまだフレーム1のアクションにあります)、これを行います。
これらのHTMLタグはすべて正しいと思います。次に、これを行います。
そして、それは私が望むように正確に表示されます(この画像の右下)[i49.tinypic.com/2upts1v.jpg]。http://を追加して表示します。
次に、上記のコード行を消去して、これを試してください。
そして、textBox.htmlText=Text0;を実行するのと同じように機能します。
次に、何か新しいことを試みます。ActionScriptを使用してtextFieldを作成し、同じイベントリスナーを適用します。
この写真の中央にあるようなものが生成されます。[i49.tinypic.com/2upts1v.jpg]。http://を追加して表示します。また、タイプしている間、色が頻繁に変化し、方向感覚を失います。いくつかのトレースを行ったところ、myTextFieldのhtmlTextの先頭に余分なタグがあることに気付きました。トレースの1つのスナップショットを次に示します。
このプロセス全体を通して、ステージに配置され、[HTMLタグのレンダリング]に設定されたテキストフィールドによって、開始タグが保持されることに気付きました。
そこで、内部の指定された部分に変更を加えるだけです。ただし、VIA Actionscript 3.0で追加されたテキストボックスの場合、writeText関数が実行され、subStringに含まれるHTMLタグが増えるにつれて、上記のスタータータグのいずれかが変更されます。
誰かが私が欠けているものを知っていますか?この奇妙な効果を取り除くために定義する必要のあるプロパティはありますか?
また、説明が長すぎる場合、これは私が抱えていたのとまったく同じ問題を引き起こす.flaです。真ん中のテキストフィールドが問題です。右下隅のtextFieldは問題ではありません。
CS3 / 4用に作成された.flaを処理できない場合は、次のようにします。
これまで、textField定義のすぐ下にあるmyTextFieldのTextFormatを設定してみました。次に、フィールドの外に特定のTextFormatを設定してみました。defaultTextFormatを新しい形式にしようとしましたが、writeText関数内でスタイルシートをリセットしようとしました...それは私にとって少しロジスティックな悪夢でした。.flaの奇妙な色の変化を止める方法がわかりません...
ただし、問題は色だけで発生するわけではありません。関数に入力し、そのタイプ書き込み効果を実行するのは、太字や斜体などで発生します。ただし、htmlText = xを設定しただけの場合は、問題なく表示されます。
何か案は?
編集:太字、斜体、下線などを使用して同じことを実装することにはわずかな問題があるようです。上記のテキストでそれを行う方法、または太字、斜体のhtmltextを使用して同様の効果を作成する方法について誰かが考えている場合、など-ここで答えてください!
asp.net - System.Web.UI.Control の HtmlTextWriter に代わるものはありますか?
Web アプリケーションのユーザー コントロールで FluentHTML またはその他の代替手段を使用できますか?
System.Web.UI.UserControl のように System.Web.UI.Control にマークアップ ファイルを配置できますが、Page オブジェクトの負担はありませんか?
次のコードの行数を減らしたい:
ありがとう
c# - ScriptControl 内の要素の一意の ID 属性を確保する
ScriptControl に基づいてコントロールを作成し、次のRender
ようにメソッドをオーバーライドしています。
私の質問は、コントロールのインスタンスが複数ある場合でも、div に ID 属性を割り当ててページ上で一意にしたい場合はどうすればよいですか?
これを行う他の人のコードを見てきました:
これにより、コントロールのインスタンス間の名前の競合を防ぐことができますが、偶然にも同じ ID を持つ div をページの別の場所に作成してしまった場合はどうなるでしょうか?
INamingContainer の実装についても聞いたことがあります。それはここに当てはまりますか?どのように使用できますか?
更新:
CreateChildControls
HTML を直接レンダリングするのではなく、実際のコントロールをオーバーライドして追加することで、この問題を回避しました。その場合、INamingContainer がその役割を果たします。ただし、元の問題 (直接レンダリングされた要素の一意の ID) を解決する方法があるかどうかはまだ興味があります。
asp.net - .ashx からの ASP.Net サーバー コントロール コード生成を使用する
以前は完全な .aspx ページにあった既存の一連のコードを取得し、.ashx ハンドラーで同じことを実行しようとしています。
このコードは、HtmlTable オブジェクトを作成し、それらの行に行とセルを追加してから、その html テーブルを .aspx のコントロール コレクションに追加し、それを既にページにあった div に追加しました。
私はコードを無傷に保とうとしていますが、コントロールを div に入れる代わりに、実際に html を生成し、AJAX クライアント側を介して呼び出すことができるテキストの大きなチャンクでそれを返します。
InnerHtml プロパティを使用しようとすると HtmlTable でエラーが発生し (サポートされていないと表示されます)、RenderControl を試すと、最初に TextWriter オブジェクトを作成し、次に HtmlTextWriter オブジェクトを作成すると、Page を null にできないというエラーが表示されます。
誰もこれを以前にやったことがありますか?助言がありますか?
c# - コントロールのHtmlTextWriterを取得する
HtmlTextWriter
コントロールを取得することは可能 ですか?いいえの場合、コードビハインドでコントロール のを
呼び出すにはどうすればよいですか?RenderEndTag
アプリケーションで問題が発生しています。リストボックスのユーザーコントロールを拡張し、そのRenderEndTag
イベントを上書きしました。
通常はWebページ内で新しいリストボックス(Mylistbox)を使用した場合、すべてが正常に機能します。しかし、Mylistboxをに入れてWebページにWebusercontrol
含めると、何らかの理由でコントロールのが呼び出されません。 Webusercontrol
RenderEndTag
そのため、コントロールの「RenderEndTag」を明示的に呼び出す必要があると思いました。そうするために私は渡す必要がありHtmlTextWriter
ます...
c# - HtmlTextWriter WriteBreak に属性を追加することは可能ですか?
HtmlTextWriter.WriteBreak メソッドを使用する場合、br タグにクラスを追加することはできますか?
xHtml 準拠の html 出力が必要なため、WriteBreak は書き込みに最適です。
brにクラスを追加して、
.net - HtmlTextWriter の内容を文字列に変換する
HtmlTextWriter の RenderBeginTag、RenderEndTag、および AddAttribute メソッドを使用して、コードで img タグを作成するサード パーティ ツールがあります。結果のHTMLを文字列に取得したい。ここに記載されているリフレクション メソッドを試してみましたが、「タイプ 'System.Web.HttpWriter' のオブジェクトをタイプ 'System.IO.StringWriter' にキャストできません」というエラーが表示されます。HtmlTextWriter の InnerWriter 型は HttpWriter 型です。
出力htmlを文字列にコピーする方法についてのアイデアはありますか?
追加:サード パーティ コントロールからのコード
asp.net-mvc - ASP.NET MVC での HtmlTextWriter の使用
HtmlTextWriter
UI 要素のレンダリングに広く使用されている古いコードを移行しています。
ASP.NET MVC 1.0 を使用するようにコードを移行しています。私が知る限り、HtmlTextWriter
特定の機能 (インデントなど) は使用していません。
現在、ラッパーメソッドを使用して、次のように生成された文字列を返してHtmlTextWriter
います。
私の質問は次のとおりです。
ASP.NET MVC ビューからインスタンスを取得しようとしてい
HtmlTextWriter
ますが、HtmlHelper でさえこれを使用していないようです。私は何かが恋しいですか?を呼び出すたびに
GenerateHtml
小さな HTML が生成されますが、通常は 1000 文字以下ですが、多数の呼び出しが発生する可能性があります。HtmlTextWriter
依存コードを StringBuilder に書き直す価値はありますか?HtmlTextWriter
または、代わりに、すべての呼び出しで使用される (そして反復の最後にフラッシュされる) インスタンスを作成するのはどうでしょうか。
asp.net - ASP.NET 2.0 では、レンダリングされたページ/コントロール出力から余分なタブと改行を削除するにはどうすればよいですか?
私はしばらくこれを研究してきました。この件に関するいくつかのリソースを見つけましたが、それらはすべて同じアプローチを使用する傾向があります-Page.Renderをオーバーライドし、HtmlTextWriterを使用して出力を文字列に変換し、一連のコンパイルされた正規表現を使用して余分な空白を削除します。ここに例があります。
まあ、私はそれを試してみましたが、うまくいきます...しかし....
Safari 5.0 では、これにより、画像の読み込みや「サーバーがビジー状態です」というエラーが発生するなど、あらゆる種類のパフォーマンスの問題が発生するようです。IE 7、FireFox 3.6、および Google Chrome 6.0 は正常に動作しているようですが、サーバーのストレス テストはあまり行っていません。時折、ページの生成に時間がかかるように見えますが、html がブラウザーに送信されると、ページはすばやく表示されます。
とにかく、考えてみると、.NET にこれらすべてのタブと改行を作成させて、文字列解析 (それらを取り除く最も効率の悪い方法) を使用してそれらをすべて再度削除させるのは、かなりばかげているように思えます。HtmlTextWriter をオーバーライドし、それをメイン ページ リクエストのツリーに渡して、出力にまったく含めないようにする方が理にかなっています。論理的には、その場合、ヒットではなくパフォーマンスが向上するはずです。
この方法を使用して空白の 50% しか削除できない場合でも、正規表現が行う作業ははるかに少なくなります。つまり、正規表現のみを使用する場合よりもパフォーマンスが向上するはずです。
コントロールアダプターを使用して、いくつかのメンバーをオーバーライドしてみました
- WriteLine() へのすべての呼び出しを対応する Write() メソッドに転送する
- NewLine プロパティを空の文字列に設定する
- OutputTabs() メソッドをオーバーライドし、単純にコードを削除する
- Indent プロパティをオーバーライドして 0 を返す
また、RenderChildren、Render、BeginRender、および EndRender をオーバーライドして、カスタム HtmlTextWriter を渡そうとしましたが、単純なラベル コントロールでさえタグの前のタブを削除できないようです。また、Reflector を使用してフレームワークを掘り下げましたが、これらの文字がどのように生成されているかを理解できません。「キャッチオール」アプローチを使用していると思っていましたが、何かが欠けているようです。
とにかく、ここに私が思いついたものがあります。このコードは、私が望むように機能していません。もちろん、ページ上のさまざまな Render メソッドを直接オーバーライドして、カスタム HtmlTextWriter のインスタンスを渡すことも試みましたが、それもうまくいきませんでした。
コントロール アダプターに慣れていない場合は、以下の xml を ASP.NET App_Browsers フォルダーの .browser ファイルに配置してください。controlType を変更して、コントロール アダプターをラベルまたはその他のテスト範囲に適用することができます。これを機能させることができれば、プロジェクトのすべてのコントロールをここに追加する必要がある場合は、それほど大したことではありません。
いずれにせよ、 VerboseHtml="false" や PreserveHtmlFormatting="false" などの単純な構成設定があるだけだと思うでしょう。MSN.com からの出力を見ると、これに似たある種の圧縮が使用されており、非常にパフォーマンスが高いように見えます。
c# - HtmlTextWriter でのレンダリング時に属性を正しく追加する方法は?
href 属性を link 要素に追加したい。これは私のコードです:
次のようにレンダリングされます。
これは私が期待したものです。
何が問題で、どうすればこの問題を解決できますか?
他の方法で弦を組み立てることができると答えないでください。HtmlTextWriter でこれを達成する方法を知りたい