ASP.NET + GridView + CommandField как TemplateField
-
22-07-2019 - |
Вопрос
У меня есть GridView. Мой GridView имеет столбец, который содержит " Параметры " колонка. Этот столбец содержит традиционные параметры CommandField (редактировать, удалять и т. Д.). У меня есть настройки кода для работы при использовании CommandField. Однако мне нужно выполнить какое-то пользовательское форматирование, чтобы преобразовать CommandField в TemplateField.
Мой вопрос: как вызвать события OnRowCommand, OnRowEditing, OnRowDeleting и OnRowUpdating из различных элементов LinkButton в моем TemplateField?
Спасибо!
Решение
Все, что вам нужно сделать, это установить для свойства 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>
Другие советы
У меня была такая же проблема.
Для редактирования я сделал следующее:
<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" />
<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>
нажмите «Столбцы» в свойствах, добавьте CommandField («Редактировать, обновить, отменить»)
и нажмите «Преобразовать это поле в templateField»
Перейдите к исходному коду и автоматически добавите код.