23

ページのすべてのコントロールのIDとそのタイプを取得できます。ページを印刷すると、そのページに表示されます。

myPhoneExtTxt Type:System.Web.UI.HtmlControls.HtmlInputText

これはこのコードに基づいて生成されます

    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";
}

どうすればこれを行うことができますか、私はあなたがアイデアを得ると思いますか?

4

1 に答える 1

52

私があなたが求めているものを手に入れたら、これがあなたが必要とするすべてであるはずです:

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

主な目標がテキストを設定することである場合:

if (c is ITextControl)
{
   ((ITextControl)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;
}

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

于 2012-07-12T19:26:07.867 に答える