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 に答える