Pergunta

Eu tenho um GridView. Meu GridView tem uma coluna que é contém uma coluna de "Opções". Esta coluna inclui as opções CommandField tradicionais (editar, apagar, etc.). Tenho a configuração do código de trabalho quando um CommandField é usado. No entanto, eu preciso fazer a formatação de um costume, então eu precisava para converter o CommandField a um TemplateField.

A minha pergunta é: como faço para acionar o OnRowCommand, OnRowEditing, OnRowDeleting e OnRowUpdating eventos dos vários elementos LinkButton na minha TemplateField?

Obrigado!

Foi útil?

Solução

Tudo que você tem a fazer é definir a propriedade CommandName do interior LinkButton de sua coluna de modelo para 'Editar' para editar, 'Delete' para apagar e 'Update' para atualização. Isso acionará o GridView RowEditing, RowDeleting e RowUpdating eventos respectivamente. Para disparar o evento RowCommand você precisa definir a propriedade OnRowCommand de seu controle GridView.

<asp:GridView ID="GridView1" runat="server" OnRowCommand="GridView1_RowCommand"
    OnRowDeleting="GridView1_RowDeleting" OnRowEditing="GridView1_RowEditing"
    OnRowUpdating="GridView1_RowUpdating">
<Columns>
    <asp:TemplateField>
        <ItemTemplate>
            <!--To fire the OnRowEditing event.-->
            <asp:LinkButton ID="lbEdit" runat="server" CommandName="Edit" 
                Text="Edit">
            </asp:LinkButton>
            <!--To fire the OnRowDeleting event.-->
            <asp:LinkButton ID="lbDelete" runat="server" CommandName="Delete" 
                Text="Delete">
            </asp:LinkButton>
            <!--To fire the OnRowUpdating event.-->
            <asp:LinkButton ID="lbUpdate" runat="server" CommandName="Update" 
                Text="Update">
            </asp:LinkButton>
        </ItemTemplate>
    </asp:TemplateField>
</Columns>    
</asp:GridView>

Outras dicas

Eu tive o mesmo problema.

Para editar, eu fiz o seguinte:

        <asp:TemplateField ShowHeader="False">
            <ItemTemplate>
                <asp:LinkButton ID="EditButton"
                                runat="server"
                                CommandName="Edit" 
                                Text="Edit" />
            </ItemTemplate>
            <EditItemTemplate>
                <asp:LinkButton ID="UpdateButton"
                                runat="server"
                                CommandName="Update"
                                Text="Update" />&nbsp;
                <asp:LinkButton ID="Cancel"
                                runat="server"
                                CommandName="Cancel"
                                Text="Cancel" />
            </EditItemTemplate>
        </asp:TemplateField>

Isto permite a exibição / ocultação de atualização e botões cancelar.

Quanto à exclusão, eu usei o seguinte:

    <asp:TemplateField>
        <ItemTemplate>
            <asp:LinkButton ID="DeleteButton"
                            Text="Delete"
                            CommandName="Delete" 
                            runat="server" />
        </ItemTemplate>
    </asp:TemplateField>

clique em colunas em propriedades, adicione CommandField(Edit,update,Cancel) e clique em "Converter este campo para templatefield"

Swich a Fonte e automaticamente vai adicionar um código.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top