如何将值从页面传递给用户控件?

时间:2013-07-18 02:48:57

标签: c# asp.net

我在页面中使用一个用户控件。 登录后,此页面基本上是用户控件。 我想从登录页面传递该用户控件中的用户名。

3 个答案:

答案 0 :(得分:0)

假设您将登录名存储在主页上某处的LABEL中。像这样:

lblLogin.Text = "LoginName";

现在,在用户控件上,您还有另一个名为 lblWCLogin LABEL,您希望从父页面分配登录名。做这样的事情:

Label lblTextFromParentPageLabel = this.Parent.FindControl("lblLogin"); 
lblWCLogin = lblTextFromParentPageLabel.Text;

另一种方法(如果您有MasterPage,无关紧要)是使用会话。

在您的Page或MasterPage代码后面设置会话。像这样:

Session["LoginName"] = "Some User Name";

在UserControl上重写会话值,如下所示:

string login_name = (string)(Session["LoginName"]);
Label1.Text = login_name;

答案 1 :(得分:0)

有很多方法可以实现这个目标

  1. 一个是找到控件
  2. 在会话中存储值并设置该会话的值
  3. 创建用户控件的公共方法,该方法将设置标签的值..并在您所需的位置从您的页面调用该userControl.SetPageLabel()方法....
  4. 确保您的标签位于更新面板中,其他明智的标签文字将被更改但在屏幕上不可见...

    或者您可以使用一些javascript来设置标签......

    http://center4code.com/

答案 2 :(得分:0)

有很多方法可以做到这一点。

我的建议是在用户控件中创建一个Property字段,允许您从任何引用用户控件的页面读取或写入值。