ASP.NET + GridView + CommandField как TemplateField - PullRequest
10 голосов
/ 30 октября 2009

У меня есть GridView. Мой GridView имеет столбец, который содержит столбец «Параметры». Этот столбец содержит традиционные параметры CommandField (редактировать, удалять и т. Д.). У меня есть настройки кода для работы при использовании CommandField. Однако мне нужно выполнить какое-то пользовательское форматирование, чтобы преобразовать CommandField в TemplateField.

У меня вопрос: как вызвать события OnRowCommand, OnRowEditing, OnRowDeleting и OnRowUpdating из различных элементов LinkButton в моем TemplateField?

Спасибо!

Ответы [ 3 ]

22 голосов
/ 30 октября 2009

Все, что вам нужно сделать, это установить для свойства CommandName LinkButton внутри столбца шаблона значение «Редактировать» для редактирования, «Удалить» для удаления и «Обновить» для обновления. Это вызовет события GridView RowEditing, RowDeleting и RowUpdating соответственно. Чтобы вызвать событие RowCommand, необходимо установить свойство OnRowCommand вашего элемента управления 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>
13 голосов
/ 08 сентября 2010

У меня была такая же проблема.

Для редактирования я сделал следующее:

        <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>

Это позволяет отображать / скрывать кнопки обновления и отмены.

Что касается удаления, я использовал следующее:

    <asp:TemplateField>
        <ItemTemplate>
            <asp:LinkButton ID="DeleteButton"
                            Text="Delete"
                            CommandName="Delete" 
                            runat="server" />
        </ItemTemplate>
    </asp:TemplateField>
1 голос
/ 11 апреля 2012

нажмите на Столбцы в свойствах, добавьте CommandField(Edit,update,Cancel) и нажмите «Преобразовать это поле в templateField»

Перейдите к исходному коду и автоматически добавите код.

...