0

実行時に既存の .aspx ページにテキストを追加しようとしています。しかし、それを行う適切な方法が見つかりません。

実行時にコード ビハインドから .aspx ページに新しいマークアップを追加する方法はありますか?

例えば:

私はこれを.aspxページに持っています-

<html>
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">

そして、コードビハインドからこれを追加したい-

    <div>
    hghjggjg
    </div>
    </form>
</body>
</html>

ありがとうございました。

4

3 に答える 3

1

動的に... ..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 が配置され、テキストが追加されます。

于 2013-09-05T16:16:52.147 に答える
0

HTMLElementバックエンドでインスタンスを作成し、それらにデータを入力して、コントロール/ページに追加します。

于 2013-09-05T16:10:47.123 に答える