Всеми путями я могу думать, чтобы сделать, это кажется очень 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
}
}
}
. Пробовали ли вы что-то вроде следующего при нажатии кнопки: -
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 - идентификаторы текстового поля и элементы управления изображением соответственно в ретрансляторе. * /
Надеюсь, это поможет.
При обратной передаче вы можете перебирать коллекцию RepeaterItems в Repeater.Items. Затем вы можете получить каждое текстовое поле с кодом, например
TextBox tbDemo = (TextBox)rptr.Items[index].FindControl("textBox");