Мне дали страницу, которую нужно изменить, и на ней есть Repeater с ItemTemplate, который содержит поля для ввода адреса человека.Каждое поле адреса выглядит примерно так:
<input type="text" id="line1<%# ((RepeaterItem)Container).ItemIndex + 1%>"
name="line1<%# ((RepeaterItem)Container).ItemIndex + 1%>" />
Вы можете видеть, что мы добавляем ItemIndex повторителя в конец полей идентификатора html и имени для текстового поля.
В Code-behind у нас есть класс DataProxy, который в основном представляет собой словарь, построенный на основе Request.Params, и мы обычно используем его для повторного заполнения формы, введенной пользователем.Например, они помещают данные в форму, отправляют ее, но проверка не проходит, потому что пара полей пуста, но мы хотим повторно заполнить то, что они ввели ранее.Мы сделаем это так:
<input type="text" name="myTextBox" id="myTextBox"
value="<%: DataProxy["myTextBox"].ToString() %>" />
Обычно это прекрасно работает, но внутри этого повторителя это не работает, и я считаю, что это потому, что DataBind для повторителя происходит после того, как мы уже выполнили поиск в словаре DataProxy для нашегозначение.Это код, который я использую:
<input type="text" id="line1<%# ((RepeaterItem)Container).ItemIndex + 1%>"
name="line1<%# ((RepeaterItem)Container).ItemIndex + 1%>"
value="<%# DataProxy["line1" + (((RepeaterItem)Container).ItemIndex + 1).ToString()] %>" />
Есть ли способ получить доступ к своему словарю DataProxy с помощью свойства ItemIndex из репитера?
Просто заметка, мой репитербудучи привязанным к данным в Page_Load ().