Ich habe viel für dieses Problem suchen, aber nichts kam.Benutzer Steuerelement dynamisch geladen mit Parametern nicht in asp.net
Mein Problem ist folgendes: Ich habe eine Hauptansicht, in der ich ein Benutzersteuerelement mit Parametern laden möchte, wenn ich auf eine Schaltfläche klicke, aber das Benutzersteuerelement wird nicht angezeigt. Der Konstruktor des Benutzersteuerelements wird aufgerufen und die Parameter werden festgelegt, selbst das Ereignis zum Laden der Seite aus dem Benutzersteuerelement wird aufgerufen. Was mache ich falsch?
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
Schaltfläche klicken Ereignis:
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>
Die Benutzersteuerung ist auf der Hauptseite nicht sichtbar und ich weiß nicht warum.
PS: Ich weiß, dass ich Parameter senden kann, wie unten zu sehen, aber ich verstehe nicht, warum ich die oben beschriebene Methode nicht verwenden kann.
Bitte nehmen Sie sich einen Blick auf [diese] (http://geekswithblogs.net/shahed/archive/2006/03/23/73096.aspx) – Bikee
@BikashSinghMaharjan Es funktioniert, aber warum einige zusätzliche Methode verwenden, statt eingebaute Funktionalität? – Zippy