Ich muss einen Weg finden, deklarativ (nicht im Code hinter der Datei) den Wert einer Eigenschaft in einer ASP.Net-Webseite an ein Benutzersteuerelement zu übergeben. Das Folgende ist ein einfaches Beispiel für das, was ich versuche, aber ich kann es nicht zum Laufen bringen. Hier ist die Auszeichnung für die aspx Seite, wo ich ein Objekt der Benutzersteuerung bin erstellen:ASP.Net Übergeben von Wert von Seiteneigenschaft zu Benutzersteuerelement
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<%@ Register Src="~/MyUserControl.ascx" TagName="MyUserControl" TagPrefix="uc1" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<uc1:MyUserControl ID="MyUserControl1" runat="server"
UserControlProperty = '<%# Bind("PageProperty") %>' />
</div>
</form>
</body>
</html>
Hier ist der Code hinter (aspx.cs) Datei aus der aspx Seite:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class _Default : System.Web.UI.Page
{
public int PageProperty { get; set; }
protected void Page_Load(object sender, EventArgs e)
{
PageProperty = 42;
}
}
hier
ist das Markup aus dem Usercontrol (ASCX-Datei):
<%@ Control Language="C#" AutoEventWireup="true"
CodeFile="MyUserControl.ascx.cs" Inherits="MyUserControl" %>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
Und hier ist der Code hinter Datei (ascx.cs) von der Benutzersteuerung:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class MyUserControl : System.Web.UI.UserControl
{
public int UserControlProperty { get; set; }
protected void Page_Load(object sender, EventArgs e)
{
TextBox1.Text = UserControlProperty.ToString();
}
}
Also, alles, was ich zu tun bin versucht, den Wert der PageProperty Eigenschaft in der aspx Seite in die Benutzersteuerung ist es UserControlProperty, einzustellen definiert passieren und dann in einem Textfeld in dem Usercontrol diesen Wert anzuzeigen. Kann mir jemand sagen, was ich hier falsch gemacht habe?
welche funktionierte? :) – 0100110010101