Доступ к текстовым полям в Repeater Control

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

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

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

Вот как будет выглядеть элемент управления повторителем с кнопкой отправки, которая обновит все строки изображения в Linq-to-SQL:

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

Редактировать:

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

Просто убедитесь, что вы не сдуете свои ценности, связывая их, если (! Page.IsPostBack), как я ...

<asp:Repeater ID="Repeater1" runat="server">
    <ItemTemplate>
        <div class="itemBox">
            <div class="imgclass">
                <a title='<%# Eval("Name") %>' href='<%# Eval("Path") %>' rel="gallery">
                    <img alt='<%# Eval("Name") %>' src='<%# Eval("Path") %>' width="260" />
                </a>
            </div>
            <asp:TextBox ID="TextBox1" Width="230px" runat="server"></asp:TextBox>
        </div>
    </ItemTemplate>
</asp:Repeater>

И нажмите кнопку Отправить:

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

Ответы на вопрос(3)

Ваш ответ на вопрос