2 Stimmen

Zugriff auf die Eigenschaft der untergeordneten Benutzersteuerung in der übergeordneten Benutzersteuerung

Ich habe ein User Control in einen anderen statisch folgenden Code eingebunden:


fügen Sie die folgende Direktive in den Asp-Code der übergeordneten Seite ein oder Benutzerkontrolle:

<%@ Register src="Name_of_your_child_control.ascx" tagname="Name_of_your_child_control" tagprefix="uc1" %>

Verwenden Sie den folgenden Tag im Asp-Code der übergeordneten Seite/Steuerung:

<uc1:Name_of_your_child_control ID="Name_of_your_child_control1" runat="server" />

..... Aber das Problem ist ... ich bin nicht in der Lage, die öffentlichen Eigenschaften der Benutzer-Steuerelement zuzugreifen, die (Kind-Benutzer-Steuerelement) in gegebenen Benutzer-Steuerelement (Eltern-Benutzer-Steuerelement) enthalten wurde ...

Bitte um Hilfe :(

5voto

Nick Craver Punkte 609016

Angenommen, Ihre Benutzerkontrolle wäre die folgende:

<%@ Control Inherits="Project.MyControl" Codebehind="MyControl.ascx.cs" %>
<asp:TextBox ID="TB" runat="server" />

Ihr Steuerelement Code-Behind:

namespace Project 
{
  public partial class MyControl : UserControl
  {
    public string MyTextProperty
    {
      get { return TB.Text; }
      set { TB.Text = value; }
    }
  }
}

In Ihrer übergeordneten Seite, die das Steuerelement enthält, etwa so:

<%@ Register src="~/MyControl.ascx" tagname="MyControl" tagprefix="uc1" %>
<uc1:MyControl ID="MyControlID" runat="server" />

Sie können diese Eigenschaft im Code verwenden:

MyControlID.MyTextProperty = "bob";

0voto

sashaeve Punkte 8953

Verwendung von

Name_of_your_child_control1.PublicPropertyName

muss für Ihre übergeordnete Benutzerkontrolle funktionieren.

0voto

Bryan Punkte 8670

Überprüfen Sie den Pfad und die Dateinamen, die Sie verwenden, Anish. Sie haben etwas falsch gemacht. Sagt Visual Studio, dass es das Steuerelement nicht finden kann? Schlägt es zur Kompilierzeit fehl? Zur Laufzeit?

0voto

vikasjagtap96 Punkte 1

Es ist schon komisch, aber immer wenn man eine Eigenschaft zu einem Benutzersteuerelement hinzufügt.

Sie müssen es erneut in der Elterndatei registrieren. In Ihrem Fall also,

Fügen Sie am Ende dieser Zeile ein Leerzeichen ein und entfernen Sie es wieder: $<% Register src="~/MyControl.ascx" tagname="MyControl" tagprefix="uc1" %>

Dadurch wird die Benutzersteuerung neu registriert und Sie können auf neue Eigenschaften zugreifen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X