Доступ к текстовым полям в управлении повторителем

Всеми путями я могу думать, чтобы сделать, это кажется очень hackish. Что правильный путь состоит в том, чтобы сделать это, или по крайней мере наиболее распространенный?

Я получаю ряд изображений от LINQ к SQL-запросу и связываю с данными его и некоторые другие данные к повторителю. Я должен добавить текстовое поле к каждому объекту в повторителе, который позволит пользователю изменить заголовок каждого изображения, очень похожего на Flickr.

Как я получаю доступ к текстовым полям в управлении повторителем и знаю, какое изображение, которому принадлежит текстовое поле?

Вот то, на что управление повторителем было бы похоже с кнопкой отправки, которая обновит все строки изображения в Linq-SQL:

сопроводительный текст http://casonclagg.com/layout.jpg

Править:

Этот код работы

Просто удостоверьтесь, что Вы не сдуваете свои значения путем Привязки за пределами если (! Страница. IsPostBack) как я.. Ой.


    
        
    

И отправьте щелчок:

protected void Button1_Click(object sender, EventArgs e)
{
    foreach (RepeaterItem item in Repeater1.Items)
    {
        TextBox txtName = (TextBox)item.FindControl("TextBox1");
        if (txtName != null)
        {
            string val = txtName.Text;
            //do something with val
        }
    }
}

24
задан Jason 20 March 2010 в 22:57
поделиться

2 ответа

. Пробовали ли вы что-то вроде следующего при нажатии кнопки: -

foreach (RepeaterItem item in Repeater1.Items)
{
      TextBox txtName= (TextBox)item.FindControl("txtName");
      if(txtName!=null)
      {
      //do something with txtName.Text
      }
      Image img= (Image)item.FindControl("Img");
      if(img!=null)
      {
      //do something with img
      }
}

/ * Где txtName и Img - идентификаторы текстового поля и элементы управления изображением соответственно в ретрансляторе. * /

Надеюсь, это поможет.

34
ответ дан 28 November 2019 в 23:23
поделиться

При обратной передаче вы можете перебирать коллекцию RepeaterItems в Repeater.Items. Затем вы можете получить каждое текстовое поле с кодом, например

TextBox tbDemo = (TextBox)rptr.Items[index].FindControl("textBox");
0
ответ дан 28 November 2019 в 23:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: