繁体   English   中英

如何在后面的代码中创建Runat服务器DIV? ASP.NET和C#

[英]How to create a runat server DIV in the behind code ? ASP.NET & C#

我正在C#后面的代码中根据数据库记录创建多个DIV。 我怎样才能使它们在服务器上运行?

提前致谢 ..

创建并添加ASP.NET Panels

编码

<asp:Panel id="abc" runat="server">

与您执行的操作完全相同:

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

它们呈现的效果相同,但是Panel最常用的是其他WebControl的功能,并且Panel Web控件在代码隐藏的情况下提供了更多控件,因为它公开了更多属性。

如果要在服务器端访问DIV ,也可以添加runat="server" 它将被创建为HtmlGenericControl

没必要,只需创建一个HtmlGenericControl并将其添加到控件集合中即可:

HtmlGenericControl div = HtmlGenericControl("div")
div.Id = "myid";
this.Controls.Add(div);

使用一个自定义控件来提取数据并按照所需方式呈现它。 有点像这样:

public class MyDivControl : System.Web.UI.Control
{
    private System.Data.DataTable tblMyResults;
    protected override void Render(System.Web.UI.HtmlTextWriter writer)
    {
        // Get your Data (or do it on Page_Load if you'll need it more than once
        if (tblMyResults != null && tblMyResults.Rows.Count > 0)
        {
            int iIndex = 0;
            foreach (System.Data.DataRow rItem in tblMyResults.Rows)
            {
                writer.WriteLine("<div id=\"{0}_{1}\">", this.ClientID, iIndex++);
                //Whatever content you want here using your rows.
                writer.WriteLine("</div>");
            }
        }
    }
}

然后,将控件放在您要呈现的页面上。

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="default.aspx.cs" Inherits="Solution.Web.Presentation.pub._default" MasterPageFile="~/ui/master/main.master" %>
<%@ Register TagPrefix="custom" Namespace="MyNameSpace" Assembly="MyProjectAssembly" %>
<asp:Content runat="server" ContentPlaceHolderID="cntMain">

<custom:MyDivControl runat="server" />

</asp:Content>

您可以使用中继器控制

<asp:Repeater ID="Repeater1" runat="server">
    <ItemTemplate>
      <div id="box<%# Eval("ID")%>" runat="server"></div>
    </ItemTemplate>
</asp:Repeater>

并从代码隐藏绑定数据

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM