Repeater asp.net标签不起作用

时间:2014-10-21 23:12:15

标签: c# html asp.net image repeater

我的ASP.NET的Repeater标签有问题。它很简单 页面运行时不生成html代码。我尝试着 使用它来生成幻灯片的标签列表,这里是 asp代码:

<asp:Repeater id="foto" runat="server">
<ItemTemplate>
<img src='<%# (string)Container.DataItem %>'/>
</ItemTemplate>
</asp:Repeater>

这是背后的代码:

protected void Page_Load(object sender, EventArgs e)
{    
    if (IsPostBack)
    {
        int num = Directory.GetFiles(@"C:\Users\Paolo\Desktop\Podisti\Slideshow\" + Request.QueryString["Cartella"]).Length;
        List<string> elencoUrl = new List<string>();
        for (int i = 1; i <= num; i++)               
            elencoUrl.Add(@"Slideshow\" + Request.QueryString["Cartella"] + "00" + i + "_jpg.jpg");
        foto.DataSource = elencoUrl; //può essere ad esempio un Array o una List di stringhe
        foto.DataBind();
    }
}

编辑: 感谢您的回答,即使它不是问题的解决方案:页面 我创建的只是一个测试,点击2个链接按钮,重定向 使用不同的查询字符串到同一页面,以便转发器可以 每次为img标记创建不同的src属性。回发就在这里 只是为了防止第一次加载页面时出错(查询字符串为null), 当我解决这个问题时,我会改变它。

如果我检查页面的代码,主要问题是转发器不能正常工作 在执行期间:

   <div style="width:500px;height:400px">        
    <div class="fotorama">
        /*The repeater doesn't create the <img> tags*/
    </div>             
</div>

1 个答案:

答案 0 :(得分:3)

if (IsPostBack)

表示只有在您刚回发页面时才会执行代码,但您可能希望将其显示为默认值,而不是在回发期间。将其修复为:

if (!IsPostBack)

如果是这样的话。

此外,您永远不应该尝试访问您的网络应用程序文件夹以获取文件夹/文件,因为那些在服务器上无法访问的文件夹/文件。永远不要硬编码这样的路径!