2012-10-04 59 views

回答

7

創建和添加ASP.NET Panels

代碼

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

是完全一樣的,如果你這樣做:

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

他們呈現相同的,但它與其他器WebControls,該小組是最常用的功能,而面板Web控件在代碼隱藏的情況下爲您提供了更多的控制,因爲它暴露了更多的屬性。

如果要在服務器端訪問DIV,還可以添加runat="server"。它將被創建爲HtmlGenericControl

1

這是沒有必要的,只要創建一個HtmlGenericControl,並將其添加到控件集合:

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

您可以使用Repeater控件

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

,並從代碼隱藏數據綁定

1

使用自定義控件可以提取數據並呈現它的樣子。有點像這樣:

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> 
相關問題