2012-07-12 22 views
14

私はすべてのページのコントロールともそのタイプのIDを取得することができる午前の確認しますは、私はそれを印刷するとき、それは</p> <pre><code>myPhoneExtTxt Type:System.Web.UI.HtmlControls.HtmlInputText </code></pre> <p>が、これは、このコードに基づいて生成されることを示すページでは、制御タイプ

foreach (Control c in page) 
    { 
     if (c.ID != null) 
     { 
      controlList.Add(c.ID +" Type:"+ c.GetType()); 
     } 
    } 

しかし、今、私はその型をチェックし、その型のHtmlInput場合は、その中にテキストにアクセスする必要があると私はそれを行う方法はかなりわかりません。私はこれを行うことができ、私はあなたのアイデアを得るどのように考えるか

if(c.GetType() == (some htmlInput)) 
{ 
    some htmlInput.Text = "This should be the new text"; 
} 

同様

?。

答えて

31

私はあなたが求めているものを得る場合、これはあなたが必要とするすべてでなければなりません:隠しをサポートするために

if (c is ITextControl) 
{ 
    ((ITextControl)c).Text = "This should be the new text"; 
} 

:あなたの主な目標は、単にいくつかのテキストを設定する場合

if (c is TextBox) 
{ 
    ((TextBox)c).Text = "This should be the new text"; 
} 

string someTextToSet = "this should be the new text"; 
if (c is ITextControl) 
{ 
    ((ITextControl)c).Text = someTextToSet; 
} 
else if (c is HtmlInputControl) 
{ 
    ((HtmlInputControl)c).Value = someTextToSet; 
} 
else if (c is HiddenField) 
{ 
    ((HiddenField)c).Value = someTextToSet; 
} 

追加のコントロール/インターフェイスをロジックに追加する必要があります。

+0

入力タイプが非表示の場合はこれが含まれますか? – user1416156

+0

残念ながら、いいえ。 HiddenFieldsは、何か有用なものの多くを継承せず、直接的に説明されなければならないという点で、厄介な小さな悪魔です。私はサポートを含むように私の答えを編集しました。 –

+0

これらのような型チェックで 'as'演算子を使うことも考えてください。 –

関連する問題

 関連する問題