渲染aspx页面中的HTML控件的动态#,如@Razor?

时间:2014-09-30 05:13:02

标签: c# asp.net

我知道我们可以在aspx页面上放置一个占位符,然后从后端代码动态添加控件。在aspx页面中是否有类似@razor引擎的方法,我们可以直接在aspx页面中添加html控件?

<% 
    int count = GetImageCount();
    for (int k = 0; k < count; k++)
    {
        string id = "img_" + k.ToString();
%>
        <asp:Image runat="server" ImageAlign="Middle" />

<%                    
    }                   
%>

我们可以使用上面的代码在aspx页面中添加多个Image控件,但是如何用不同的id和src设置它们呢?

或者,我们不能直接在aspx中执行此操作?

感谢

1 个答案:

答案 0 :(得分:2)

您无法动态设置服务器控件的ID。另外,据我所知,在aspx中为for循环中的控件设置ImageUrl direclty可能是不可能的 - 你可能应该看看并asp:Repeater控制。

要实现您的目标,您可能会发现使用HTML <img>控件(如@Grundy建议)而不是asp:Image控件的这段代码很有用:

<% int count = 5;
    for (int i = 0; i < count; i++)
    {
        string id = "id_" + i;
        string imageUrl = "/Images/img_" + i;
%>
    <img id="<%=id%>" src="<%=imageUrl%>"/>
<% 
    }
%>