0

我有一个大问题。我在网站上有一个面板和一个网格视图。面板在网格视图之外。我想做这样的事情:

protected void GridViewProfile_RowDeleting(object sender, GridViewDeleteEventArgs e)
{   
    String userName = GridViewProfile.Rows[e.RowIndex].Cells[2].Text.ToString();
    if (Roles.IsUserInRole(userName, "Doctor"))
    {
        ContentPlaceHolder contentPlaceHolder = (ContentPlaceHolder)this.Page.Master.FindControl("ContentPlaceHolder1");
        ((Panel)contentPlaceHolder.FindControl("PanelVisits")).Visible = true;
    }
    Membership.DeleteUser(userName, true);
}

不幸的是,它不起作用。当我单击“删除”按钮时,面板不可见。为什么?请帮我写正确的代码。

4

1 回答 1

0

您需要将面板放在 UpdatePanel 中,如下例所示:

<asp:UpdatePanel runat="server" ChildrenAsTriggers="False"        
    ID="UpdatePanel1"        
    UpdateMode="Conditional">
    <ContentTemplate>
        <!-- Your panel markup here -->
    </ContentTemplate>
</asp:UpdatePanel>

然后在服务器端将您的代码更新为以下内容:

((Panel)contentPlaceHolder.FindControl("PanelVisits")).Visible = true;
UpdatePanel1.Update();

这将在客户端应用更改,因为更新面板将被更新。

于 2013-11-09T17:45:21.320 回答