asp.net 中母版页、用户控件中属性的调用、赋值方法求解。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了asp.net 中母版页、用户控件中属性的调用、赋值方法求解。相关的知识,希望对你有一定的参考价值。
例如:
1、载入母版页MasterPageFile="web.master",我要给母版页中的labelmaster.Text赋值,还有获取他的值。
2、我要给用户控件<%@ Register Src="muban/uctop.ascx" TagName="uctop" TagPrefix="uc" %<uc:uctop ID="uctop" runat="server" />中的labeltop.Text赋值,还有获取他的值。
3、载入母版页MasterPageFile="web.master",母版页中包含<%@ Register Src="muban/uctop.ascx" TagName="uctop" TagPrefix="uc" %<uc:uctop ID="uctop" runat="server" />,我要给母版页中的用户控件中的labelmu.Text赋值,还有获取他的值。
求大神耐心解答!!!
赋值 ((Label)Master.FindControl("labelmaster")).Text="456";
用户控件:赋值((Label)uctop.FindControl("labeltop")).Text = "123";
取值((Label)uctop.FindControl("labeltop")).Text;
母版页的用户控件: 赋值((Label)((UserControl)Master.FindControl("uctop")).FindControl("labelmu")).Text = "uuuuu";
取值((Label)((UserControl)Master.FindControl("uctop")).FindControl("labelmu")).Text 参考技术A 1. ((Label)this.Master.FindControl("labelmaster")).Text
2. 用户控件中,你就只能在用户控件里面抛出一个public的属性(如public string LableText),用于get或set labeltop这个控件的Text值,然后在调用的窗口中直接调用 用户控件ID.LabelText即可。
3. 结合1和2进行处理
用户登录时在母版页中隐藏登录面板。(ASP.net)
【中文标题】用户登录时在母版页中隐藏登录面板。(ASP.net)【英文标题】:Hiding login panel in master page when users logged in. (ASP.net) 【发布时间】:2012-01-25 04:31:21 【问题描述】:我的母版页中有一个面板,其中包含用于用户登录的文本框。用户成功登录,但我想隐藏面板。当用户输入时,当我尝试通过 false 隐藏面板时,可见性这不起作用。我在以下母版页中的代码:(我使用表单身份验证,用户在数据库中)
protected void Button1_Click(object sender, EventArgs e)
//hide panel doesn't work
Panel1.Visible = false;
//
SqlCommand cmd = new SqlCommand();
string str = "Data Source=.\\SQLEXPRESS;AttachDbFilename=C:\\Users\\ava\\Desktop\\WebSite3\\App_Data\\news.mdf;Integrated Security=True;User Instance=True";
SqlConnection conn = new SqlConnection(str);
conn.Open();
cmd.CommandText = "select * from users where username=@name and pass=@pass";
cmd.Connection = conn;
cmd.Parameters.AddWithValue("name", user.Text);
cmd.Parameters.AddWithValue("pass", pass.Text);
SqlDataReader dr = cmd.ExecuteReader();
if (dr.HasRows)
Panel1.Visible = false;
Panel2.Visible = true;
FormsAuthentication.SetAuthCookie(user.Text, true);
FormsAuthentication.RedirectFromLoginPage(user.Text, true);
Response.Redirect("/website3/karbar/karbar.aspx");
else user.Text = "Incorrect name or pass";
【问题讨论】:
老兄!你是认真的以纯文本形式保存密码吗!!! 这里有太多的反模式......加上严重的安全漏洞。我认为这个小组不是你的主要问题......这是某种挑衅吗?我只希望这是纯粹的测试环境。 这是测试,我加密了这个密码 【参考方案1】:加载完成后在您的母版页中执行以下操作
if(Request.IsAuthenticated)
Panel1.Visible = false;
Panel2.Visible = true;
或者使用 LoginView 这个控件支持 Anonymous 和 LoggedIn 用户的模板
【讨论】:
请注意,这仅在登录后第一次重定向后才有效。【参考方案2】:试试这个:
Panel1.Dispose();
【讨论】:
我想隐藏这个面板并为登录用户显示另一个面板。但是这个面板没有隐藏,那个面板没有显示。这些面板的可见性不起作用【参考方案3】:你可以这样试试,可能对你有帮助
Panel1.Style.Add(HtmlTextWriterStyle.Display, "none");
【讨论】:
【参考方案4】:我希望你在一个基本上继承了母版页的 aspx.cs 页面中编写代码。
所以你需要这样做:
protected void Button1_Click(object sender, EventArgs e)
((Panel)YourMasterPageID.FindControl("YourPanelID")).Visible = false;
【讨论】:
或者,如果您需要在母版页中编写代码,则可以编写为:code
YourPanelId.Attributes.Add("style", "display:none"); code
或 code
YourPanelId.Style.Add("display", "none"); code
以上是关于asp.net 中母版页、用户控件中属性的调用、赋值方法求解。的主要内容,如果未能解决你的问题,请参考以下文章