【问题标题】:How to Create new div for each loop如何为每个循环创建新的 div
【发布时间】:2015-04-24 06:17:54
【问题描述】:

我正在使用带有 c# 和母版页的 asp.net。我试图在一段时间内为每个循环创建新的 div,以便能够按照我的意愿制作指定对象。有什么办法我可以做到这一点或者如果仅从我的 aspx.cs 有没有其他方法可以做到?

aspx.cs:

protected void Page_Load(object sender, EventArgs e)
 {
                while (Reader.Read())
                {
                    Response.Write("<div id=test  >");

                    Response.Write(Reader.GetString(3)+" ");
                    Response.Write(Reader.GetString(10) + "<br />");
                    Response.Write("<a href='Info.aspx?param=" + Reader.GetString(0) + "' target='_blank'>" + "More..." + "</a>");

                    Response.Write( "<br />");
                    Response.Write("");
                    Response.Write("</div>");

                    //TextBox1.Text = Reader.GetString(3);
                    //TextBox2.Text = Reader.GetString(10);

                }
}

aspx:

<%@ Page Title="" Language="C#" MasterPageFile="~/MainDesigne.Master" AutoEventWireup="true" CodeBehind="MobilePageRouteDoc.aspx.cs" Inherits="WebApplication2.MobilePageRoteDoc" %>


<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">



    <telerik:RadScriptManager ID="RadScriptManager1" runat="server">
        <Scripts>
            <asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.Core.js">
            </asp:ScriptReference>
            <asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.jQuery.js">
            </asp:ScriptReference>
            <asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.jQueryInclude.js">
            </asp:ScriptReference>
        </Scripts>
    </telerik:RadScriptManager>

    <link href="Assets/Css/mobile.css" rel="stylesheet" />

    <telerik:RadDropDownList ID="RadDropDownList1" runat="server" OnSelectedIndexChanged="RadDropDownList1_SelectedIndexChanged">
    </telerik:RadDropDownList>

    <div id="test">



    </div>

    </asp:Content>

【问题讨论】:

  • 你有什么问题
  • 为什么不使用 RepeaterDataList 等数据绑定控件。让您的生活更轻松。

标签: c# html css asp.net loops


【解决方案1】:

您可以像这样分配&lt;div id="test"&gt; 属性runat="server"

<div runat="server" id="test">

然后你可以在你后面的代码中访问它:

test.InnerHtml = "your html here";

所以基本上首先在循环中创建您的 html(多个 div),然后将其添加到“测试”div。另外,我建议您保持循环中创建的每个元素的唯一 ID,并且不要忘记添加双引号...id="test1"id="test2",这是您修改后的代码:

protected void Page_Load(object sender, EventArgs e)
 {
     string html = "";
     int i = 0;
     while (Reader.Read())
     {    
         html+= "<div id=\"test" + i +  "\">";    
         html+= Reader.GetString(3) + " ";
         html+= Reader.GetString(10) + "<br />";
         html+= "<a href='Info.aspx?param=" + Reader.GetString(0) + "' target='_blank'>" + "More..." + "</a>";    
         html+=  "<br />";
         html+= "</div>";
         i++;
     }
     test.InnerHtml = html;
}

【讨论】:

  • 如果是 id="test[i]" 我如何访问它们?来自CSS?能举个例子吗?
  • 如果你想引用你在循环中从css生成的那些div,最好给它们分配一个类:class="testClass" 和css:.testClass { background: red;}
【解决方案2】:

如果你想添加&lt;div&gt;,你可以使用HtmlGenericControl,它可以生成html

HtmlGenericControl div = new HtmlGenericControl();
div.ID = "AnyDivID";
div.TagName = "div";
div.Attributes["class"] = "YourClassName";
div.InnerText = string.Format("Inner text= {0} ;", "YourInnerText");
form1.Controls.Add(div);

【讨论】:

    猜你喜欢
    • 2011-10-22
    • 2018-08-14
    • 1970-01-01
    • 2014-07-31
    • 1970-01-01
    • 2019-05-15
    • 2015-06-29
    • 2011-10-05
    • 1970-01-01
    相关资源
    最近更新 更多