我在内容也中通过 ((Label)(this.Master.FindControl("lab_Name"))).Text = Session["nickName"].ToString();找到母版页的Label控件“lab_Name”并把session中的值赋给它,但是母版页上并没有显示出当前赋的值而是上次的值,只有手动刷新页面后才显示出来,大家谁能帮个忙啊

解决方案 »

  1.   

    你在你的内容页添加:<%@ MasterType VirtualPath="~/MasterPage.master" %>
    masterpage:private string _nickName;
    public string NickName
    {
    get{ return _nickName; }//这里你可以使用session或者viewstate保存_nickName的值。
    set{ _nickName = value; }
    }
    然后你在内容页使用Master.NickName来访问就行了。
      

  2.   

    <form name="form" id="form" runat="server">
        <asp:ScriptManager ID="ScriptManager1" runat="server">
    </asp:ScriptManager>
    <asp:UpdatePanel ID="UpdatePanel1" runat="server" RenderMode="Block"> 
    <ContentTemplate>
    <div id="main">
        <div id="head">
            <div class="head_left"><img src="../images/logo1.jpg" /></div>
            <div class="head_right">
            
            
            <div><img src="../images/head_r1_c2.jpg" /></div>
                <div class="banner">
                 <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" 
                        codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" 
                        height="31px" style="width: 705px">
      <param name="movie" value="../images/menu.swf" />
      <param name="quality" value="high" />
      <param name="wmode" value="transparent">
      
      <embed src="../images/menu.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="32" height="32"></embed>
    </object>
                 
                 
                </div>
        
                <div class="yonghu">欢迎您:<asp:Label ID="lab_Name" runat="server" Text="Label"></asp:Label>
                <%if (((HiddenField)this.ContentPlaceHolder1.FindControl("hid_tag")).Value != "0")
                  {  string scriptstr = @"alert('aaaaaaacccc!');";
                     ScriptManager.RegisterStartupScript(this.UpdatePanel1, this.GetType(), "update", scriptstr, true);
                      %>
                >
                 订阅图书<asp:Label ID="lab_SubBook" runat="server" Text="Label"></asp:Label>本
                 <asp:LinkButton ID="tbtn_edit" runat="server"  OnClientClick ="showDialogWindow('Join.aspx?type=2', 650, 450, '')">编辑用户信息</asp:LinkButton>
                 <asp:LinkButton ID="lbtn_zx" runat="server" onclick="lbtn_zx_Click">注销用户</asp:LinkButton>
                 <%} %>
                 </div>
               
            </div>
        </div>
        <div id="quan">
               
                <asp:ContentPlaceHolder id="ContentPlaceHolder1" runat="server">
               </asp:ContentPlaceHolder>
                
        </div>    <div id="bottom">
            <hr />
            <div class="di"></div>
        </div>
    </div>
    </ContentTemplate>
    </asp:UpdatePanel></form>
    这个是我的母版页。我用的是vss 2008 开发的
    当我从别的页面跳转过来的时候。用户的信息并没有变成当前用户的。而是要我刷新一下才显示
      

  3.   

    楼主就是想实现:欢迎您:XXX的效果啊。
    那么你可以只在母板中实现就行了啊。
    (将下列代码放在母板的Page_Load,其中Cookies["user_name"]的内容由登录页面写入当前用户名)
    给一个COOK的代码供参考:   HttpCookie Rcookie=Request.Cookies["user_name"];
       if(Rcookie!=null)
       {
          string curr_user=HttpUtility.UrlDecode(Rcookie["user_name"]).ToString(); //汉字解码
           this.Label1.Text="欢迎您:"+curr_user+" 登录";
       }
      

  4.   

    应该是UpdatePanel的原因吧!你去你把按钮放到标签外面去就行了