如何将字符串数组(在我的情况下是文件列表)绑定到中继器的项模板中的变量

本文关键字:中继器 绑定 变量 列表 文件 数组 字符串 情况下 我的 | 更新日期: 2023-09-27 18:25:46

如何将字符串数组(本例中为文件列表)绑定到项模板中的变量?

以下是我目前所掌握的内容,但我不确定如何处理itemdatabound背后的代码。

我正在尝试将每个url放入<%Photo_URL%>变量。

如有任何帮助,我们将不胜感激。

提前感谢。

页面代码

<asp:Repeater id="unorderedList" runat="server" OnItemDataBound="unorderedList_ItemDataBound">
   <HeaderTemplate>
       <ul class="thumbs noscript">
   </HeaderTemplate>
   <ItemTemplate>
          <li>
            <a class="thumb" href='<%# Photo_URL %>'>
                <img src='<%# Photo_URL %>'>
            </a>
            <div class="caption">
                <div class="download">
                    <a href='<%# Photo_URL %>'>Download Original</a>
                </div>
            </div>
        </li>
   </ItemTemplate>
   <FooterTemplate>
       </ul>
   </FooterTemplate>
</asp:Repeater>

背后的代码

private void Page_Init(object sender, EventArgs e)
{
    string[] photos = Directory.GetFiles(ImagesLocation);
    unorderedList.DataSource = photos;
    unorderedList.DataBind();
}
protected void unorderedList_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
    //what goes here
}

如何将字符串数组(在我的情况下是文件列表)绑定到中继器的项模板中的变量

            <div class="download">
                <a href='<%# Container.DataItem %>'>Download Original</a>
            </div>

不需要ItemDataBound事件,只需要使用<%# Container.DataItem %>语法,如下所示:

<ItemTemplate>
      <li>
        <a class="thumb" href='<%# Photo_URL %>'>
            <img src='<%# Container.DataItem %>'>
        </a>
        <div class="caption">
            <div class="download">
                <a href='<%# Container.DataItem %>'>Download Original</a>
            </div>
        </div>
    </li>

您可以使用Container.DataItem语法:

<asp:Repeater id="unorderedList" runat="server" OnItemDataBound="unorderedList_ItemDataBound">
   <HeaderTemplate>
       <ul class="thumbs noscript">
   </HeaderTemplate>
   <ItemTemplate>
          <li>
            <a class="thumb" href='<%#Container.DataItem%>'>
                <img src='<%#Container.DataItem%>'>
            </a>
            <div class="caption">
                <div class="download">
                    <a href='<%#Container.DataItem%>'>Download Original</a>
                </div>
            </div>
        </li>
   </ItemTemplate>
   <FooterTemplate>
       </ul>
   </FooterTemplate>
</asp:Repeater>

您需要在ItemTemplate中添加一个GridView。将其DataSource设置为<%# Eval("string_list_name") %>,其中string_list_name是字符串列表的变量名。