2014-10-21 244 views
0

我有一个ASP.NET的Repeater标记问题。它只是 在页面运行时不会生成html代码。我想 用它来生成标签的列表,幻灯片,这里是 ASP代码:中继器asp.net标记不工作

<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个链接按钮,将 重定向到具有不同查询字符串的同一页面,以便中继器可以 创建不同的src属性每次都是img标签。回发是在这里 只是为了防止页面的第一次加载(查询字符串为空)的错误, 我会改变它,当我将解决这个问题。

的主要问题是:该转发器没有做的工作,如果我在执行过程中检查 页面代码:

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

回答

3
if (IsPostBack) 

意味着你的代码只有将执行你只是发回页面,但您可能想要将其显示为默认页面,而不是在回发期间。修复它:

if (!IsPostBack) 

如果是这样的话。

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