У меня есть повторитель на моей странице.В этом нет ничего удивительного.
<asp:Repeater runat="server" ID="rptBusiness">
<HeaderTemplate>
<table>
<colgroup>
<col width="170px" />
<col width="75px" />
<col width="75px" />
</colgroup>
<tr>
<th style="text-align:left; background-color: Silver;">Business</th>
<th style="text-align:left; background-color: Silver;">Rep</th>
<th style="text-align:left; background-color: Silver;">City</th>
</tr>
</table>
<div class="scrollDiv">
<table>
<colgroup>
<col width="155px" />
<col width="75px" />
<col width="75px" />
</colgroup>
</HeaderTemplate>
<ItemTemplate>
<asp:Literal runat="server" ID="litRow" />
</ItemTemplate>
<FooterTemplate>
</table>
</div>
</FooterTemplate>
</asp:Repeater>
- HeaderTemplate определяет таблицу, содержащую строки заголовка, которые не прокручиваются.Он также определяет начало таблицы содержимого, которая содержится в элементе прокрутки.
- ItemTemplate содержит один элемент управления Literal, который я заполняю в коде строк строк таблицы (мы вернемся к этому вмомент).
- Шаблон FooterTemplate закрывает блок прокрутки и таблицу.
Обратите внимание, что в макете нет ничего плохого.Это привязка данных.В коде ниже у меня есть следующий код:
Dim list As System.Collections.Generic.List(Of Business)
list = BusinessWithAddress.Select(excludeBusKey, _
searchCriteria, _
contained, _
Connector.GetConnectionString())
Me.rptBusiness.DataSource = list
Me.rptBusiness.DataBind()
Теперь я могу увидеть , что список содержит много различных предприятий.Более 800 из них, на самом деле.Проблема в том, что при возникновении события ItemCreated я получаю один и тот же бизнес-элемент каждый раз .
Почему?
Редактировать:
Забыли.Вот так я проверяю предмет, чтобы снова и снова определять, что он один и тот же.
Private Sub rptBusiness_ItemCreated(ByVal sender As Object, _
ByVal e As System.Web.UI.WebControls.RepeaterItemEventArgs) _
Handles rptBusiness.ItemCreated
Dim item = CType(e.Item.DataItem, Business)
' Content elided
End Sub