ASP.NET -スワップTextBoxesのためのラベルを有効にした場合=False
質問
の設定:Webフォームのテキストボックス制御できます。
場合にテキストボックスコントロールのEnabledプロパティがFalseので、そういった"ワ"ことをテキストボックスしてラベルを行います。のこれまでの読み取りのみんな表示できるようになり、制御設計のために編集する。
私は考えるこのインターネットはモバイルおよび再利用が、どのよう最善の方法なのだ。
解決
わからないその最良の方法、私はなるだろうカスタムサーバーコントロールがテキストボックスで、
そして、renderメソッドをオーバーライドし、それが読み取り専用であるかどうかを確認、
それが読まれている場合にのみ、その後のラベルコントロールのようなあなたのspanタグをレンダリングします。
その後、ベース(テキストボックス)を引き継ぐレンダリングを聞かせていない場合は...
public class SpecialTextbox : TextBox
{
public override void RenderControl(HtmlTextWriter writer)
{
if (!this.ReadOnly)
{
base.RenderControl(writer);
}
else
{
writer.Write(string.Format("<span id=\"{0}\" class=\"{1}\">{2}</span>",
this.ClientID,
this.CssClass,
this.Text));
}
}
}
他のヒント
この溶液にする新しい制御伸びるテキストボックス.自分が専門とする制御をオーバーライド(パーツ)のレコードの制御を描画するのと同様のラベルが読み取り専用=trueです。
もう一つの方法は、コントロールアダプタを使用してに見えることであろう。あなたは、本質的にBigBlondeVikingがreccomendsまったく同じことを行うことができるだろうが、あなたは、通常のASPを使用することができconinue:あなたのコード内のTextBoxコントロールを。それは、あなたや他の開発者の方がはるかに簡単になります。
<のhref = "http://weblogs.asp.net/scottgu/archive/2005/12/21/asp-net-2-0-control-adapter-architecture.aspx" のrel = "nofollowをnoreferrer" > の
コントロールアダプタについて