#c# #string #c#-4.0 #c#-3.0 #query-string
#c# #строка #c #-4.0 #c #-3.0 #запрос-строка
Вопрос:
У меня есть идентификатор текстовых полей как tb1, tb2, tb3 и назначение текста
tb1.text="xyz";
Я хочу, чтобы он вызывался динамически, который принимает значение из массива примерно так
tb(record[key]).text="xyz".
что, очевидно, неправильно. Кто-нибудь может мне помочь, как это сделать, используя C#
Комментарии:
1. Будет ли когда-либо только 3 текстовых поля? Если это так, то вы можете просто использовать некоторые операторы if. Возможно, нам было бы полезно узнать, почему вы хотите это сделать.
2. @Joey думал использовать операторы if, но на самом деле у меня 16 текстовых полей. Спасибо, что дали мне знать.
3. Спасибо всем за ваши быстрые ответы!!
Ответ №1:
Вы можете использовать FindControl
метод для построения строки
TextBox tb = FindControl("tb" record[key]) as TextBox;
tb.Text = "xyz"
это может быть не совсем правильно, но это должно направить вас на правильный путь.
Комментарии:
1. Одна из проблем заключается в том, что она автоматически прерывается при переименовании элементов управления. Такого рода волшебные строки в исходном коде являются антишаблоном IMO.
2. Очень верно. Я вообще стараюсь избегать таких ситуаций.
Ответ №2:
Вы можете поместить текстовые поля в массив или словарь, а затем использовать это для поиска правильного текстового поля.
TextBox[] tb=new TextBox[]{tb1,tb2,tb3};
tb[id-1].Text="xyz"
Ответ №3:
Создайте массив элементов управления. Затем вы можете получить к ним доступ следующим образом:
myTextBoxArray[0].Text = "xyz";
Или
myTextBoxArray[record[key]].Text = "xyz";
Смотрите Этот пост о том, как создавать массивы элементов управления, в качестве одного примера.
http://www.daniweb.com/software-development/csharp/threads/180533
Ответ №4:
Вы могли бы использовать метод FindControl, чтобы найти их, что-то вроде этого:
TextBox test = (TextBox)Page.FindControl("tb" record[key]);
Ответ №5:
Вы можете использовать что-то вроде:
Control myTb = FindControl("tb" record[key]);
myTb.Text = "xyz";
Однако позаботьтесь о том, чтобы обрабатывать ситуации, когда элемент управления не найден.