2009-07-22 6 views

Trả lời

4

Sử dụng asp: Panel, ánh xạ tới div.

19
Panel myChildPanel = new Panel(); 
myContainerPanel.Controls.Add(myChildPanel); 
6

Ngoài việc sử dụng Bảng điều khiển như ocdecio đề xuất, có một số khả năng khác.

  • Bạn có thể sử dụng một asp: Literal control bên trong div và điền vào đó với HTML pregenerated
  • Thêm một runat = "server" vào div bản thân và tiếp cận nó như là một HtmlGenericControl, thêm các điều khiển khác để nó từ codebehind của bạn.
  • Sử dụng <% = ...%>

Nó phụ thuộc một chút vào mức độ kiểm soát mà bạn cần. Tuy nhiên, dưới một phần lớn trường hợp, một Ban Hội thẩm rằng bắt đầu ra vô hình sẽ là tốt nhất:

<div>  
<asp:Panel Visible="false" id="MyPanel" runat="server"> 
</asp:Panel> 
</div> 

Sau đó thay đổi tầm nhìn từ codebehind của bạn khi cần thiết.

Một trường hợp bạn có thể muốn sử dụng một trong các phương pháp khác là khi bạn bị kẹt với một số tệp CSS gán kiểu dựa trên ID. Trong trường hợp đó, việc sử dụng các điều khiển .NET không thực sự là một tùy chọn. Nhưng thực sự, bạn nên smack thiết kế của bạn trên đầu và nói với anh ta để sử dụng tên lớp để thay thế.

25

// tạo phiên bản mới của div và đặt tất cả các giá trị như ID Kiểm tra ví dụ Mã ngắn. Nó làm việc cho tôi để tạo ra Divs trong một trang web thêm

System.Web.UI.HtmlControls.HtmlGenericControl NewDiv = new 
    System.Web.UI.HtmlControls.HtmlGenericControl(); 
    NewDiv.ID = "divcreated"; 

hoặc

protected void Page_Load(object sender, EventArgs e) 
{ 
    System.Web.UI.HtmlControls.HtmlGenericControl createDiv = 
    new System.Web.UI.HtmlControls.HtmlGenericControl("DIV");  
    createDiv.ID = "createDiv"; 
    createDiv.Style.Add(HtmlTextWriterStyle.BackgroundColor, "Yellow"); 
    createDiv.Style.Add(HtmlTextWriterStyle.Color, "Red"); 
    createDiv.Style.Add(HtmlTextWriterStyle.Height, "100px"); 
    createDiv.Style.Add(HtmlTextWriterStyle.Width, "400px"); 
    createDiv.InnerHtml = " I'm a div, from code behind "; 
    this.Controls.Add(createDiv); 
} 
+0

cho SharePoint cho tôi làm việc: createDiv.Attributes.Add ("id", "createDiv"); –

+0

Cảm ơn câu trả lời rất hữu ích, chỉ cần làm thế nào để bạn thêm nó vào một div khác? đó là một phần của câu hỏi. – JCO9

0

Đây có thể là một câu hỏi rất cũ nhưng tôi muốn thêm giải pháp của tôi vì đã giúp:

Thứ nhất, đến "div" bạn đã có trong trang của mình (trang bạn muốn thêm "div" khác) cho thuộc tính runat = "server" để bạn có thể truy cập nó từ mã phía sau, nó sẽ trông như sau:

<div id="superDIV" class="someCssClass" runat="server"></div> 

Sau đó phương pháp trong Page_Load() của bạn thêm dòng sau:

protected void Page_Load(object sender, EventArgs e) 
{ 
    //We create our new div 
    System.Web.UI.HtmlControls.HtmlGenericControl newDiv = 
    new System.Web.UI.HtmlControls.HtmlGenericControl("DIV"); 
    newDiv.ID = "newSuperDIV"; //<---Give and ID to the div, very important! 
    newDiv.Style.Value = "background-color:white; height:61%;"; //<---Add some style as example 
    newDiv.Attributes.Add("class", "amazingCssClass"); //<---Apply a css class if wanted 
    superDiv.Controls.Add(newDiv); //<---Add the new div to our already existing div 
} 

Genearte div của bạn trực tiếp bên trong Page_Load chức năng vì vậy nó sẽ đảm bảo rằng tồn tại sau khi bất kỳ postback, tránh tạo ra nó bên trong khối mã như (! IsPostBack) {} nếu không nó sẽ không tồn tại trong trang của bạn.