私は、Webフォームのやり方を説明します。
ページで選択的に表示/非表示にする静的なマークアップがある場合は、通常はコントロールのVisibleプロパティを設定します。
<%-- This is in your ASPX markup (.aspx) --%>
<asp:Panel runat="server" id="HelloWorldPanel">
<p>Hello, world!</p>
</asp:Panel>
//This is in your code behind (.aspx.cs)
//hide the panel
HelloWorldPanel.Visible = false;
//show the panel
HelloWorldPanel.Visible = true;
あなたには、いくつかの他のソースからの動的なデータを取得し、ページ上に表示しようとしている場合は、このデータを表示して、マークアップにデータをバインドするために、あなたのページにマークアップを宣言します。
many controls you can bind data toがあります。
データをバインドできるコントロールの1つの例はリピーターです。リピータは、ページ上でレンダリングされるマークアップを厳密に制御したい場合に適しています。それらをList<T>
のようないくつかの列挙可能なオブジェクトにバインドし、その後、列挙可能なオブジェクトの各要素に対していくつかのマークアップを繰り返します。
//This is in your project somewhere
namespace MyNamespace
{
public class Product
{
public int Id { get; set; }
public int Name { get; set; }
}
}
<%-- This is in your ASPX markup (.aspx) --%>
<ul>
<asp:Repeater runat="server" id="ProductRepeater" ItemType="MyNamespace.Product">
<ItemTemplate>
<li><%#: Item.Id %> - <%#: Item.Name %></li>
</ItemTemplate>
</asp:Repeater>
</ul>
//this is in your code behind (.aspx.cs)
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostback)
{
List<Product> products = MyDataLayer.GetProducts();
ProductRepeater.DataSource = products;
ProductRepeater.DataBind();
}
}
これはなんですか? ASP.NET Webフォーム? MVC? MVCコア?ナンシー? – mason
はい.NET Webフォーム – cpcdev
次に、手動でHTMLを構築してフォームに追加しようとしていますか?なぜそれをマークアップで宣言し、コントロールのVisibleプロパティを設定してページに表示するかどうかを制御しませんか? – mason