Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
819 views
in Technique[技术] by (71.8m points)

asp.net - Using ItemType for strongly typed repeater control?

Okay, so I looked up some cool stuff about strongly typed repeater controls... the only issue is that it won't work. I have a List<Entry> that I've bound my repeater to. I just want to display the data. Normally I use ((Entry)(Container.DataItem)), but from what I've read I can just declare the type in the ItemType.

Well... that's what I tried to do, but I get nothing. What am I messing up here?

<asp:Repeater ID="UserRptr" ItemType="HROpenEnrollment.Classes.Entry" runat="server">
    <ItemTemplate>
        <ul class="UserList">
            <li class="CompoundField">
                <%# ???? I can't use Item here. %>
            </li>
        </ul>
    </ItemTemplate>
</asp:Repeater>

I would guess that it's not finding my entry class... how do I get that in there? It's in the same namespace, in a separate folder.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

You need to bind data in code behind like below:

using (MicroGOVEntities entities = DataEntitiesFactory.GetInstance())
{
    var getGovernments = from g in entities.S_Government 
                         orderby g.DateCreated descending 
                         select g;
    rpData.DataSource = getGovernments.ToList();
}
rpData.DataBind();

And the ASP.NET code is:

<asp:Repeater ID="rpData" runat="server"
              ItemType="MicroGOV.Entity.S_Government" 
              OnItemCommand="rpData_ItemCommand">
    <ItemTemplate>
        <td><%#:Item.GovernmentID %></td>
    </ItemTemplate>
</asp:Repeater>

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...