В GridView будут перечислены строки, которые должны быть одобрены/отклонены. Первый столбец называется «Action», который при нажатии будет отображать панель popupcontrolextender ajax с двумя ссылками (Approve/Reject). После щелчка ссылки мне нужно обновить статус в БД &, обновить GridView. ObjectDataSource используется для привязки GridView. Я использовал следующий код внутри RowCommand события:PopupControlExtender внутри Gridview не закрывается
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()
HTML в 'Action' в TemplateField:
<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>
Попробованная ниже методы, но не успех:
- Подавить панель-х видимость с помощью стиля = "display: '';"
- Вызывается метод Cancel() из PopupControlExtender
Примечание: Всплывающее исчезает, если я не связать GridView внутри события RowCommand. Но мне нужно обновить результаты, отображаемые после Approve/Reject.
Цените любую помощь. Благодаря!
Ницца первый пост! Но не могли бы вы уточнить свой вопрос в теле вашего поста, чтобы помочь другим понять, что именно вы спрашиваете? Вы всегда можете обновить свой вопрос. Добро пожаловать в переполнение стека, рекомендуемое чтение: http://stackoverflow.com/help/how-to-ask –