0

对 .NET 有点陌生,并试图了解如何最好地完成这项任务:我有一个列表视图,其中包含一个包含字符串值列表的数据源。最后一个属性是我想放在 Text 模板中的一些文本;通常,当不在列表视图中使用时,我可以成功地将标记和文本放入模板中,所以我想保留这个结构。但是将那个字符串放在里面的方法是什么?我已经尝试过 Databinder.Eval 但正如预期的那样,它说模板不包含我从 Container.DataItem 引用的属性(它成为模板)。

<asp:ListView runat="server"
    ID="ListView1"
    OnItemDataBound="ListView1_ItemDataBound">

    <LayoutTemplate>

        <div class="navigation">
            <asp:PlaceHolder runat="server" id="itemPlaceholder" />
        </div>

    </LayoutTemplate>

    <ItemTemplate>

        <my:Control id="VideoLink1" runat="server">
            <Text>
                --- PLACE CONTENT HERE --
            </Text>
        </my:Control>

    </ItemTemplate>

</asp:ListView>

任何人都知道如何做到这一点?将不胜感激。

4

1 回答 1

1

使用 ListView 的 ItemDatabound 事件。在那里找到您的控件,然后分配所需的属性。

protected void ListView1_ItemDataBound(object sender, ListViewItemEventArgs e)
    {
        if (e.Item.ItemType == ListViewItemType.DataItem)
        {
            YourControl  VideoLink1= e.Item.FindControl("VideoLink1") as YourControl ;
            if(VideoLink1!= null)
            {
                YourClass obj = ((YourClass)(((System.Web.UI.WebControls.ListViewDataItem)(e.Item)).DataItem));
               VideoLink1.TextProperty = obj .TextProperty ;
           }    
       }
}
于 2012-05-04T13:03:11.673 回答