動的に... ..aspx
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="xx.ascx.cs" Inherits="xx.layouts.xxSublayout" %>
<%@ Register Assembly="System.Web" Namespace="System.Web.UI" TagPrefix="asp" %>
<asp:LiteralControl runat="server" ID="openingTag" />
<asp:PlaceHolder runat="server" id="contentPanel" />
<asp:LiteralControl runat="server" ID="closingTag" />
コードビハインド..テキストを含むdivをPAGE_LOAD以外のメソッドに追加します...
var inputWrapper = new HtmlGenericControl("div"){ID = "d1"};
inputWrapper.Attributes.Add("class", "yourcssclass");
inputWrapper.InnerText = "hghjggjg";
contentPanel.Controls.Add(inputWrapper);
タグのポストバックを保持するには...
//add div ID to list, add list to session so it can be recreated on the page_INIT, this must be done or btn will NOT exist when "Get vCard" is clicked.
PostbackIDs.Add(inputWrapper.ID);
Session["pb"] = PostbackIDs;
INitで...
//Must recreate controls from session, so label is existing
if (Session["pb"] != null)
{
var pblist = (List<string>)Session["pb"];
foreach (var id in pblist)
{
// label
var inputWrapper= new HtmlGenericControl("div") { ID = id };
inputWrapper.Attributes.Add("class", "yourcssclass");
contentPanel.Controls.Add(inputWrapper);
}
}
ページの読み込み前に INIT メソッドがヒットされるため、コントロールの ID が配置され、テキストが追加されます。