この問題は多く検索しましたが、何も表示されませんでした。asp.netにパラメータが表示されない状態でユーザーコントロールが動的に読み込まれる
私の問題は次のとおりです。ボタンをクリックしてもユーザーコントロールを表示しないで、パラメータを持つユーザーコントロールをロードするメインビューがあります。ユーザーコントロールのページロードイベントが呼び出された場合でも、ユーザーコントロールのコンストラクターが呼び出され、パラメーターが設定されます。何が間違っているのですか?
Main.aspx
:
<%@ Page Title="Main page" Language="C#" AutoEventWireup="true" CodeBehind="Main.aspx.cs" Inherits="MainApp.Main" MasterPageFile="~/Site.master" %>
<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent"></asp:Content>
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
<%-- some other fields which i send to the user control on click --%>
<div class="col-lg-1 col-sm-12 col-md-1">
<asp:Button runat="server" CssClass="btn btn-primary" CausesValidation="false" ID="generateData" OnClick="generateData_Click" Text="View info" />
</div>
<div runat="server" id="contentDiv">
<p>No info available atm.</p>
</div>
</asp:Content>
Main.aspx.cs
ボタンクリックイベント:
protected void generateData_Click(object sender, EventArgs e)
{
UserControl1 uc = (UserControl1)this.LoadControl(typeof(UserControl1), new object[] { param1, param2, param3});
contentDiv.Controls.Clear();
contentDiv.Controls.Add(uc);
}
UserControl1.aspx.cs
:
public partial class UserControl1: System.Web.UI.UserControl
{
public string Param3 { get; set; }
public string Param1 { get; set; }
public string Param2 { get; set; }
protected void Page_Load(object sender, EventArgs e)
{
Page.DataBind();
}
public UserControl1(string param1, string param2, string param3)
{
Param1 = param1;
Param2 = param2;
Param3 = param3;
}
}
UserControl1.ascx
:
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="UserControl1.ascx.cs" Inherits="MainApp.UserControls.UserControl1" %>
<div>
<p style="color: red">Under construction</p>
</div>
ユーザーコントロールはメインページには表示されません。その理由はわかりません。
PS:私は以下のようにパラメータを送信できることを知っていますが、私は上記の方法を使用できない理由を理解できません。ここで
UserControl1 uc = (UserControl1)this.LoadControl("~/UserControls/UserControl1.ascx");
uc.Param1 = "val1";
...
それは働いて@BikashSinghMaharjan [この](http://geekswithblogs.net/shahed/archive/2006/03/23/73096.aspx) – Bikee
を見てみましょうが、なぜ代わりに、いくつかの余分な方法を使用してください組み込み機能ですか? – Zippy