Подтвердить что ты не робот

Проверка типа управления

Я могу получить идентификаторы всех элементов управления страницы, а также их тип, на странице, когда я печатаю ее, она показывает

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

как я могу это сделать, я думаю, вы поняли идею?

4b9b3361

Ответ 1

Это должно быть все, что вам нужно, если я получу то, что вы просите:

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

В логику должны быть добавлены дополнительные элементы управления/интерфейсы.