2009-10-30 11 views
10

Mam GridView. Mój GridView ma kolumnę, która zawiera kolumnę "Opcje". Ta kolumna zawiera tradycyjne opcje CommandField (edycja, usuwanie itd.). Mam konfigurację kodu do działania, gdy używany jest CommandField. Jednak potrzebuję niestandardowego formatowania, więc musiałem przekonwertować CommandField na TemplateField.ASP.NET + GridView + CommandField jako TemplateField

Moje pytanie brzmi: jak wyzwolić zdarzenia OnRowCommand, OnRowEditing, OnRowDeleting i OnRowUpdating z różnych elementów LinkButton w moim TemplateField?

Dziękujemy!

Odpowiedz

22

Wszystko, co musisz zrobić, to ustawić właściwość CommandName elementu LinkButton wewnątrz swojej kolumny szablonu na "Edytuj" do edycji, "Usuń" do usunięcia, a "Aktualizuj" do aktualizacji. Spowoduje to uruchomienie odpowiednio zdarzeń GridView RowEditing, RowDeleting i RowUpdating. Aby uruchomić zdarzenie RowCommand, należy ustawić właściwość OnRowCommand kontrolki 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> 
12

Miałem ten sam problem.

do edycji, zrobiłem co następuje:

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

To pozwala na pokazywanie/ukrywanie aktualizacji i anulować przyciski.

Co do usuwania, użyłem następujące:

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

kliknięcie na kolumnach właściwości, dodać CommandField(Edit,update,Cancel) i kliknij "Convert to pole do TemplateField"

swich źródła i automatycznie będzie dodaj kod.

Powiązane problemy