C# 如何将值从页面传递到用户控件?
我在一个页面中使用一个用户控件。 基本上,在登录后,这个页面将带有用户控件。C# 如何将值从页面传递到用户控件?,c#,asp.net,C#,Asp.net,我在一个页面中使用一个用户控件。 基本上,在登录后,这个页面将带有用户控件。 我想在登录页面的用户控件中传递用户名。比如说,将登录名存储在主页上某个位置的标签中。像这样: lblLogin.Text = "LoginName"; Session["LoginName"] = "Some User Name"; 现在,在用户控件上有另一个标签,名为lblWCLogin,您想从父页面分配登录名。这样做: Label lblTextFromParentPageLabel = this.Parent
我想在登录页面的用户控件中传递用户名。比如说,将登录名存储在主页上某个位置的
标签中。像这样:
lblLogin.Text = "LoginName";
Session["LoginName"] = "Some User Name";
现在,在用户控件上有另一个标签
,名为lblWCLogin,您想从父页面分配登录名。这样做:
Label lblTextFromParentPageLabel = this.Parent.FindControl("lblLogin");
lblWCLogin = lblTextFromParentPageLabel.Text;
string login_name = (string)(Session["LoginName"]);
Label1.Text = login_name;
另一种方法(不管您是否拥有母版页)是使用会话。
将页面上的会话或母版页代码设置为隐藏。像这样:
lblLogin.Text = "LoginName";
Session["LoginName"] = "Some User Name";
检索UserControl上的会话值,如下所示:
Label lblTextFromParentPageLabel = this.Parent.FindControl("lblLogin");
lblWCLogin = lblTextFromParentPageLabel.Text;
string login_name = (string)(Session["LoginName"]);
Label1.Text = login_name;
实现这一点的方法有很多
因为一个是找到控制
在会话中存储值并设置该会话中的值
创建用户控件的公共方法,该方法将设置标签的值。。并在所需位置从页面调用userControl.SetPageLabel()方法
确保您的标签位于更新面板中,其他wise标签文本将被更改,但在屏幕上不可见
或者您可以使用一些javascript来设置标签
有很多方法可以做到这一点
我的建议是在用户控件中创建一个属性字段,允许您从引用用户控件的任何页面读取或写入值。您使用的是哪种身份验证?例如,如果您的“登录页面”正在实施表单身份验证,则您已经可以访问当前用户。先生,我可以在登录后访问当前用户,但问题是我想在用户控件中显示用户名您想显示哪个用户名?你想在用户登录之前显示它吗?你不应该在会话中存储用户信息吗?它存储在会话中,我只传递会话这应该在母版页的页面加载中?好,您没有提到您有母版页。哦,我真的很抱歉。它不是母版页,我的意思是说它应该在父页的页面加载中?是的,lblLogin.Text=“LoginName”;应该在父页面上。我怎么做?