0

.NETの新機能であり、このタスクを実行するための最善の方法を理解しようとしています。文字列値のリストを含むデータソースを含むリストビューがあります。最後のプロパティは、テキストテンプレートに配置したいテキストです。通常、リストビュー内で使用されていない場合は、テンプレート内にマークアップとテキストを正常に配置できるため、この構造を維持したいと思います。しかし、その文字列をそこに配置する方法は何でしょうか?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 に答える