0

GridView は、承認/拒否する必要がある行を一覧表示します。最初の列は「アクション」という名前で、クリックすると ajax popupcontrolextender パネルが表示され、2 つのリンク (承認/拒否) が表示されます。リンクをクリックした後、DB のステータスを更新し、GridView を更新する必要があります。ObjectDataSource は、GridView をバインドするために使用されます。RowCommand イベント内で以下のコードを使用しました。

Dim index As Integer = Convert.ToInt32(e.CommandArgument)
Dim gvRow As GridViewRow = GridView1.Rows(index)

If e.CommandName = "Approve" Then
    BusinessLogicLayer.UpdateFileStatus(sID, Approve)
ElseIf e.CommandName = "Reject" Then
    BusinessLogicLayer.UpdateFileStatus(sID, Reject)
End If

GridView1.DataBind()
DirectCast(gvRow.FindControl("pceMenu"), AjaxControlToolkit.PopupControlExtender).Cancel()

TemplateField 'Action' の HTML:

<asp:TemplateField HeaderText="Action" >
  <ItemTemplate>
    <ajax:PopupControlExtender ID="pceMenu" runat="server" TargetControlID="imgMenu" PopupControlID="pnlMenu" Position="Right" >  
    </ajax:PopupControlExtender> 
    <asp:Image ID="imgMenu" runat="server" ImageUrl="~/Images/gear.png" CssClass="popupImage" /> 
    <asp:Panel ID="pnlMenu" runat="server" CssClass="popupControl" Width="85px" Height="50px" style="display:none;"> 
      <div class="menu-row" style="border-top: none;">
        <asp:Image ID="imgApprove" runat="server" ImageUrl="~/Images/tick.png" style="float:left;"/>
        <asp:LinkButton ID="lnkApprove" runat="server" Text="Approve" ToolTip="Approve" style="margin-left:10px;" CommandName="Approve" /> 
      </div> 
      <div class="menu-row">
        <asp:Image ID="imgReject" runat="server" ImageUrl="~/Images/delete16.png" style="float:left;"/>
        <asp:LinkButton ID="lnkReject" runat="server" Text="Reject" ToolTip="Reject" style="margin-left:10px;" CommandName="Reject" />
      </div> 
    </asp:Panel>
  </ItemTemplate> 
  <HeaderStyle HorizontalAlign="Left"/>
  <ItemStyle HorizontalAlign="Center" Width="5%"/> 
</asp:TemplateField>

以下の方法を試しましたが、成功しませんでした:

  • style="display:'';" を使用してパネルの可視性を抑制します
  • PopupControlExtender の Cancel() メソッドを呼び出す

注: RowCommand イベント内で GridView をバインドしないと、ポップアップが消えます。しかし、承認/却下後に表示される結果を更新する必要があります。

どんな助けにも感謝します。ありがとう!

4

1 に答える 1

0

こんにちは、コード ビハインドからajax コントロール ツールキットの モーダル ポップアップ エクステンダーを非表示にするには、次のコードを試してください。

IdOfYourModelPopup.Hide();
于 2015-05-28T08:51:11.240 に答える