标签文本不显示在Page_Load之外

时间:2015-05-26 13:07:13

标签: c# asp.net

我有一个网格,在网格的顶部,我喜欢显示标签:

    <asp:Label ID="lblMsg" runat="server" ForeColor="Red"></asp:Label>

在删除网格中的行时,我有以下代码:

    protected void RadGrid1_DeleteCommand(object sender, GridCommandEventArgs e)
    {

        if (!(User.IsInRole("Administrator")))
        {
           lblMsg.Text = "Must be an Admin in delete.";
           return;
        } 

注意:调试器会转到显示标签文本的位置,但它不会显示在页面上。 :

     lblMsg.Text = "Must be an Admin in delete.";

注意:如果我在页面加载中使用相同的代码,则标签文本在页面上显示正常。在我的代码中也没有(!IsPostBack){}。

1 个答案:

答案 0 :(得分:0)

这就是你的问题。当您的页面回发时,标签将被赋予值:

 lblMsg.Text = "Must be an Admin in delete.";

但是Page_Load再次被调用。所以你的Page_Load看起来应该是这样的

protected void Page_Load(object sender, EventArgs e) {
  if(!IsPostBack) {
     //Populate my page
  }
}

这几乎适用于您在ASP.NET中编写的每个页面