[英]Access user control properties and values from code behind in c#
this is an user control
in c#这是 c# 中的user control
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="Message.ascx.cs" Inherits="Message" %>
<asp:Label ID="Label1" runat="server" Text=""></asp:Label>
public partial class Message : UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
MasterPage mstr = this.Parent.Page.Master as MasterPage;
Label1.Text = "User control >>> " + (mstr.FindControl("lblUserName") as Label).Text + "<br /><br /><br />";
}
}
the value of label Label1
in user control
set your value with label lblUserName
value from master page
user control
中 label Label1
的值使用master page
中的 label lblUserName
值设置您的值
public partial class MasterPage : System.Web.UI.MasterPage
{
public string UserNamePropertyOnMasterPage
{
get
{
return lblUserName.Text;
}
set
{
lblUserName.Text = value;
}
}
}
<form id="form1" runat="server">
<div>
<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
</asp:ContentPlaceHolder>
<span style="font-size: 25px; background-color: greenyellow">
<asp:Label ID="lblUserName" runat="server" Text="foo"></asp:Label>
</span>
</div>
</form>
Now I need get the value of label Label1
from user control
on code behind of Default.aspx.cs现在我需要从Default.aspx.cs后面代码的user control
中获取 label Label1
的值
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
using (Page page = new Page())
{
UserControl userControl = (UserControl)page.LoadControl("Message.ascx");
string sp = (userControl.FindControl("Label1") as Label).Text;
Response.Write("You are Welcome : " + sp.ToString() + "<br /><br /><br />");
}
}
}
<%@ Page Title="" Language="C#" MasterPageFile="MasterPage.master"
AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<%@ MasterType VirtualPath="MasterPage.master" %>
<%@ Register Src="~/Message.ascx" TagPrefix="uc1" TagName="Message" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">
<asp:Label ID="lblCurrentUserName" runat="server" Text=""></asp:Label>
<uc1:Message ID="Message" runat="server"></uc1:Message>
</asp:Content>
Don't have error but the return on Default.aspx is empty没有错误,但Default.aspx上的返回为空
How to do resolve this?如何解决这个问题?
Please, can you help me?拜托,你能帮帮我吗?
There are a lot of problems with this design.这种设计存在很多问题。 First, the username is generally available from the authentication framework you are using.首先,用户名通常可以从您使用的身份验证框架中获得。
User.Identity.Name
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.