我正在根据我的 C# 代码后面的数据库记录创建多个 DIV。我怎样才能让它们运行在服务器上?
提前致谢 ..
创建并添加ASP.NETPanels
。
编码
<asp:Panel id="abc" runat="server">
与您执行以下操作完全相同:
<div id="abc" runat="server">
它们呈现相同的内容,但它是 Panel 最常用的其他WebControl的功能,并且 Panel Web 控件在代码隐藏下为您提供更多控制,因为它公开了更多属性。
如果要访问服务器端的 a 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>
并从代码隐藏中绑定数据