我有一个大问题。我在网站上有一个面板和一个gridview。面板在gridview之外。我想做这样的事情:
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);
}
不幸的是,它不起作用。当我点击“删除”按钮时,面板不可见。为什么?请帮我写正确的代码。
答案 0 :(得分: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();
这将在客户端应用更改,因为更新面板将会更新。