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;
赋值 ((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;

【讨论】:

或者,如果您需要在母版页中编写代码,则可以编写为:codeYourPanelId.Attributes.Add("style", "display:none"); codecode YourPanelId.Style.Add("display", "none"); code

以上是关于asp.net 中母版页、用户控件中属性的调用、赋值方法求解。的主要内容,如果未能解决你的问题,请参考以下文章

Asp.net 如何取母版页的属性及控件及方法调用求解答

WebFrom 母版页

webfrom 母版页

母版页

关于asp.net中页面事件加载的先后顺序

ASP.NET内容页中访问母版页中的对象