循环中的代码生成对象,空白副本显示在它们之前

时间:2017-03-20 20:07:16

标签: c# html asp.net visual-studio

所以我正在为音频租用查询系统创建一个网页。这些项目保存在数据库中,其中包含品牌,型号,每日成本,类型等信息。

我需要为数据库中的每个项目加载带有标签,图像,按钮和文本框的网页(随着时间的推移会增长和缩小)。

为此,我查询数据库以查找项目总数,然后生成并填充此循环中的项目(这是HTML和C#代码块之间的混合); (我删除了一些小的格式化内容,比如换行符等,以便于阅读)

<%     for (int i = 1 ; i <= total; i++)
        {
            brand = getBrand(i, conString);
            name = getName(i, conString);
            price = getPrice(i, conString);
            type = getType(i, conString);   %>

            <asp:Label ID="lblName" CssClass="name" runat="server"/>

        <%  (lblName).Text = (brand + " " + name);
            lblName.ID = "lblName" + i;     %>

            <asp:Image ID="imgItem" runat="server" Width="325px"/>

        <%  imgItem.ImageUrl = (@"~\Images\" + brand + "_" + name + ".jpg");
            imgItem.ID = "imgItem" + i;     %>

            <asp:Label ID="lblPrice" CssClass="info" runat="server"/>

        <%  lblPrice.Text = ("£" + Convert.ToString(price) + " per day");
            lblPrice.ID = "lblPrice" + i;   %>

            <asp:Button id="btnAdd"  text="Add" runat="server" onClick="btnAdd_Click"/>
            <asp:TextBox ID="txtQty"  TextMode="Number" Width="24px" CssClass="quantity" runat="server">1</asp:TextBox>

        <%  btnAdd.Load += new EventHandler(btnAdd_Click);
            btnAdd.ID = Convert.ToString(i);
            txtQty.ID = ("txtQty" + i);  %>

            <asp:Image CssClass="rule" runat="server"/>

    <%  }%>

但是,当它生成网页时,它不会在第一个项目上启动,它会在ID被更改之前以对象的空白版本开始(例如,btnAdd而不是1,2等):

Web Page with blank object duplicates

我全身都搜索过,无法找到解决方案。

- 在设计器中将视图状态设置为false会删除所有对象,而不仅仅是第一个对象(这是唯一出现在设计器中的对象)。

- 从设计器中删除它们会删除代码行,然后重新添加代码行将它们添加回设计器

任何帮助或任何指示我在某个地方的正确方向的帮助都非常感激。

谢谢, 本

0 个答案:

没有答案