ASP.NET Repeater ItemCreated事件一遍又一遍地绑定相同的项目

时间:2010-10-20 20:52:05

标签: asp.net data-binding repeater

我的页面上有一个Repeater。没什么了不起的。

<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定义了一个表,用于包含不滚动的标题行。它还定义了内容表的开头,该表包含在滚动div中。
  • ItemTemplate包含一个Literal控件,我用表格行填写代码隐藏(我们马上就会知道)。
  • FooterTemplate关闭滚动div和表格。

注意,布局没有任何问题。这是数据绑定。在代码隐藏中,我有以下代码:

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

0 个答案:

没有答案