以编程方式将gridview行从编辑模式中删除

时间:2015-02-03 01:51:09

标签: asp.net gridview rowstate

在ASP.NET gridview控件的OnRowCommand事件中,如何以编程方式获取编辑模式的行OUT? 我通过命令字段将行设置为编辑模式。用户点击“立即取消批准”后,我想将该行设置为“常规”非编辑模式。

我现在有:

<asp:TemplateField HeaderStyle-Width="100" HeaderText="Actions" HeaderStyle-HorizontalAlign="Left" ItemStyle-HorizontalAlign="Center">
    <ItemTemplate>     
        <asp:Literal ID="ltStatus" runat="server" />
        <asp:LinkButton CssClass="btn-primary-green" CommandArgument="<%# Container.DataItemIndex %>" ID="btnApprove" CommandName="approve" runat="server" Text="Approve" /><br />
        <asp:LinkButton CssClass="btn-primary" CommandArgument="<%# Container.DataItemIndex %>" ID="btnDelete" Visible="false" CommandName="deleteorder" runat="server" Text="Delete" />                    
    </ItemTemplate>
    <EditItemTemplate>
        <asp:DropDownList ID="ddlDisApproveReason" ValidationGroup="disapprove" runat="server" >
            <asp:ListItem Text="<%$Resources:disapprovereason %>" Value="0" />
            <asp:ListItem Text="<%$Resources:duplicateorder %>" Value="1" />
            <asp:ListItem Text="<%$Resources:testorder %>" Value="2" />
            <asp:ListItem Text="<%$Resources:retourorder %>" Value="3" />
        </asp:DropDownList>
        <asp:RequiredFieldValidator CssClass="errortext" ID="rfvDisapprove" InitialValue="0" ValidationGroup="disapprove" ControlToValidate="ddlDisApproveReason" runat="server" ErrorMessage="<%$resources:glossary,required %>" SetFocusOnError="true" Display="Dynamic" />
        <asp:LinkButton CssClass="btn-primary" ValidationGroup="disapprove" CommandArgument="<%# Container.DataItemIndex %>" ID="btnDisApprove" CommandName="disapprove" runat="server" Text="Disapprove now" />                    
        <br />

    </EditItemTemplate>
</asp:TemplateField>
<asp:CommandField ShowEditButton="true" EditText="<%$Resources:disapprove %>" />

OnRowCommand事件

Protected Sub gvAllOrders_OnRowCommand(ByVal sender As Object, ByVal e As GridViewCommandEventArgs) Handles gvAllOrders.RowCommand 
    If e.CommandName = "disapprove" Then
        index = Convert.ToInt32(e.CommandArgument)
        data = gvAllOrders.DataKeys(index)
        orderId = data.Values("id")
        Dim clickedRow As GridViewRow = CType(CType(e.CommandSource, LinkButton).NamingContainer, GridViewRow)
        Dim reason As Integer = CType(clickedRow.FindControl("ddlDisApproveReason"), DropDownList).SelectedValue

        If GeneralFunctions.DisapproveOrder(False, reason, Date.Now, orderId) = 1 Then
            'disaprove order
            'HERE I WANT THE ROW TO GO OUT OF EDIT MODE
            gvAllOrders.DataBind()
        End If
    End If
End Sub     

0 个答案:

没有答案
相关问题