используя findcontrol, чтобы найти элемент управления в буквальном контроле - PullRequest
0 голосов
/ 04 мая 2010

У меня есть пользовательский элемент управления, который отображает ряд буквальных элементов управления в методе createchildcontrols. как показано ниже (добавляются другие строки буквального управления, которые я здесь не исключил)

this.Controls.Add(new LiteralControl(string.Format("<input type=\"text\" style=\"display:none\" value=\"{0}\" id=\"{1}\" name=\"{1}\" />", MediaId.ToString(), this.UniqueID)));

Затем я пытаюсь проверить это текстовое поле, добавив [ValidationProperty ("myprop")] вверху класса. в основном мне нужно проверить по значению, введенному в текстовом поле. свойство myprop выглядит следующим образом

public string myprop
    {
        get
        {
            Control ctrl = this.FindControl(this.UniqueID);
            string txt = ((TextBox)ctrl).Text;

            try
            {
                MediaId = Convert.ToInt32(txt);
            }
            catch { MediaId = 0; }
            return txt;
        }
    }

к сожалению, findcontrol вообще не находит текстовое поле, я полагаю, потому что для .net это буквальный контроль, а не текстовое поле вообще

теперь я точно могу изменить createchildcontrols, чтобы сделать это

        TextBox tb = new TextBox();
        tb.Text = this.MediaId.ToString();
        tb.ID = this.UniqueID;
        this.Controls.Add(tb);

но из-за других ограничений того, что я делаю, мне пришлось бы изменить гораздо больше вещей в других местах ..

Есть ли способ заставить findcontrol найти текстовое поле, отображаемое внутри литерала, или другой метод?

спасибо

физ

1 Ответ

0 голосов
/ 04 мая 2010

к сожалению, findcontrol не найти текстовое поле на всех, я полагаю потому что в отношении .net это буквальный контроль, а не текстовое поле в все

Это правильно. Вы должны использовать какой-то другой элемент управления, например текстовое поле.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...