質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
Framework

Frameworkは、アプリケーションソフトを開発する際に、一般的な機能をより簡単に、より早く完了させる事を目的とした、ソフトウェアやライブラリのセットを指します。開発にフレームワークを使用する事で、追加で必要となる機能だけを開発するだけで済む為、開発効率の向上が見込めます。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

Q&A

1回答

3388閲覧

ASP.NETで動的にASP.NETタグを追加する方法について

kumakumatan

総合スコア213

Framework

Frameworkは、アプリケーションソフトを開発する際に、一般的な機能をより簡単に、より早く完了させる事を目的とした、ソフトウェアやライブラリのセットを指します。開発にフレームワークを使用する事で、追加で必要となる機能だけを開発するだけで済む為、開発効率の向上が見込めます。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

0グッド

0クリップ

投稿2022/02/07 07:22

■WebForms
■OS:Windows7
■VisualStuido2017
■Framework 4.5
■言語C#

ASP.NET

1<span class="honbunTxt">テスト①</span> 2<asp:TextBox ID="con1" CssClass="Editor" runat="server" value="" ></asp:TextBox> 3<asp:TextBox ID="cd1" runat="server" CssClass="Dummy" value=""></asp:TextBox> 4<button type="button" ID="src1" class="src">検索</button> 5<asp:Button ID="cl1" runat="server" CssClass="cl" Text="クリア"/> 6<br /> 7<button type="button" ID="ins" class="src">追加</button>

のコードにて「追加」ボタンを押したら、下記のようなASPタグを追加して、
画面に入力タグを追加したく思います。

ASP.NET

1<span class="honbunTxt">テスト②</span> 2<asp:TextBox ID="con2" CssClass="Editor" runat="server" value="" ></asp:TextBox> 3<asp:TextBox ID="cd2" runat="server" CssClass="Dummy" value=""></asp:TextBox> 4<button type="button" ID="src2" class="src">検索</button> 5<asp:Button ID="cl2" runat="server" CssClass="cl" Text="クリア"/> 6<br />

その後、もう一回押したら

ASP.NET

1<span class="honbunTxt">テスト③</span> 2<asp:TextBox ID="con3" CssClass="Editor" runat="server" value="" ></asp:TextBox> 345

のようにタグを追加したく思います。
ASPを利用してそのような事は可能でしょうか。可能であれば、
どのようにすればいいでしょうか。また、何か参考になる情報などが
あればご教授いただきたく思います。

宜しくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2022/02/07 08:46 編集

意味不明です。「ASPタグ」って何? コードを見るとだんだん行数が減っていっていて、追加しているようには見えません。 XY 問題になっているのが疑わしいです。X を書いてください。
guest

回答1

0

WebUserControlを使えば上手くいくと思います(ボタンで追加していくとこだけ書きますね)

Default.aspx

<%@ Page Title="test" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="HelloWorld._Default" %> <%@ Register TagPrefix="WebUc" TagName="WebUcControl" Src="WebUserControl1.ascx" %> <asp:Content ID="BodyContent" ContentPlaceHolderID="MainContent" runat="server"> <link rel="stylesheet" href="/Css/AspxStyle.css"> <asp:Panel ID="panel" runat="server"> </asp:Panel> <asp:Button runat="server" type="button" ID="ins" class="src" OnClick="Unnamed_Click" AutoPostback ="False" Text="追加"></asp:Button> <div> </div> </asp:Content>

Default.aspx.cs

namespace HelloWorld { public partial class _Default : Page { protected void Page_Load(object sender, EventArgs e) { if (Session["WebUserControls"] == null) { Session["WebUserControls"] = new List<WebUserControl1>(); } if (Session["WebUserControls"] is List<WebUserControl1> obj) { if (!IsPostBack) { var addContext = (WebUserControl1)LoadControl("WebUserControl1.ascx"); addContext.Title = "テスト" + (obj.Count() + 1); obj.Add(addContext); } foreach (var i in obj) { panel.Controls.Add(i); } } } protected void Unnamed_Click(object sender, EventArgs e) { if (Session["WebUserControls"] is List<WebUserControl1> obj) { var addContext = (WebUserControl1)LoadControl("WebUserControl1.ascx"); addContext.Title = "テスト" + (obj.Count() + 1); obj.Add(addContext); foreach (var i in obj) { panel.Controls.Add(i); } } } } }

WebUserControl1.ascx

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="WebUserControl1.ascx.cs" Inherits="HelloWorld.WebUserControl1" %> <span class="honbunTxt"> <asp:Label runat="server" ID="title" /> </span> <asp:TextBox ID="con1" CssClass="Editor" runat="server" value=""></asp:TextBox> <asp:TextBox ID="cd1" runat="server" CssClass="Dummy" value=""></asp:TextBox> <button type="button" id="src1" class="src">検索</button> <asp:Button ID="cl1" runat="server" CssClass="cl" Text="クリア" /> <br />

WebUserControl1.ascx.cs

C#

1namespace HelloWorld 2{ 3 public partial class WebUserControl1 : System.Web.UI.UserControl 4 { 5 public string Title { get => title.Text; set => title.Text = value; } 6 protected void Page_Load(object sender, EventArgs e) 7 { 8 } 9 } 10}

とりあえずコントロールを動的に追加するコードのみ書きました
値の保持に関してはSession変数について調べて頑張って実装してください
WebUserControlは使えると便利なのでぜひ調べてみてくださいね

投稿2022/02/18 07:21

編集2022/02/18 07:49
akiko_

総合スコア35

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問