1

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

这是我到目前为止所拥有的,但我不确定如何处理 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
}
4

4 回答 4

3
            <div class="download">
                <a href='<%# Container.DataItem %>'>Download Original</a>
            </div>
于 2013-07-31T19:19:28.980 回答
2

不需要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>

于 2013-07-31T19:19:16.693 回答
2

您可以使用以下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>
于 2013-07-31T19:19:30.513 回答
-1

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

于 2013-07-31T19:18:23.067 回答