2 Stimmen

EditTemplate-Eigenschaft des asp:GridView-Steuerelements

Ich habe ein asp:GridView und darin habe ich zwei Spalten, in einer Spalte möchte ich ein Label anzeigen aber wenn ich auf eine Schaltfläche zum Bearbeiten klicke, möchte ich eine Dropdown-Liste in dieser bestimmten Spalte anzeigen, Ich habe die Grid-Ansicht wie folgt erstellt:

<bw:GridView ID="grdProducts" AllowPaging="True" PageSize="5" AllowSorting="True" 
  CssClass="DGTable" runat="server" AutoGenerateColumns="False" DataKeyNames="LinkedProductCode"
  RowSelectingEnabled="True" RowStyle-CssClass="DGItem" SelectedRowStyle-CssClass="DGSelectedItem"
  FooterStyle-CssClass="DGFooterTR"  EditRowStyle-CssClass="DGEditItemValidator" >
  <Columns>
    <asp:BoundField DataField="LinkedProductCode" HeaderText="Product Code" ReadOnly="true" meta:resourcekey="BoundFieldResource4" />                                        
    <asp:TemplateField  HeaderText="Product Type" ItemStyle-VerticalAlign="Top">
     <ItemTemplate>
     <asp:Label ID="lbl1" runat="server" Text='<%# Bind("LinkedProductType")%>' /> 
    </ItemTemplate>
     <EditItemTemplate >
       <asp:DropDownList ID="linkedproductList" runat="server" DataSourceID="list">
       </asp:DropDownList>
     </EditItemTemplate>
    </asp:TemplateField>                                        
  </Columns>
  <SelectedRowStyle CssClass="DGSelectedItem" />
  <PagerStyle CssClass="DGPagerTR" />
  <HeaderStyle CssClass="DGHeaderTR" />
</bw:GridView>

Was muss ich dafür tun? Was sollte ich in das Klick-Ereignis der Schaltfläche "Bearbeiten" schreiben? Bitte helfen

3voto

Russ Cam Punkte 120837

Das hängt davon ab, wie Sie die Schaltfläche Bearbeiten einrichten. Wenn Sie

<asp:Button ID="btnEdit" CommandName="Edit" runat="server" Text="Edit" />

innerhalb einer <ItemTemplate> in der GridView, dann wechselt die Gridview automatisch in den Bearbeitungsmodus, wenn die Schaltfläche Bearbeiten angeklickt wird. Der BefehlName Edit ist ein spezieller CommandName, um eine GridView in den Bearbeitungsmodus zu versetzen.

Wenn Sie ein bestimmtes Verhalten im Bearbeitungsmodus implementieren möchten, können Sie einen OnRowEditing-Eventhandler einrichten und Ihre Logik hier implementieren. Dies würde etwa so aussehen

protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
    // Set editing on the row that raised the event
    GridView1.EditIndex = e.NewEditIndex;

    /* Insert specific editing logic here */

    GridView1.DataBind();
}

3voto

Cerebrus Punkte 25410

Sie müssen lediglich eine ButtonField con Commandname auf "Bearbeiten" setzen (alternativ die Option AutoGenerateEditButton Eigenschaft des GridViews auf True).

Das GridView unterstützt vorkonfigurierte Befehle für Felder, die einen bestimmten Satz von CommandNames angeben (z. B. "Bearbeiten", "Löschen", "Abbrechen").

Wenn diese Schaltfläche angeklickt wird, wechselt Ihre GridView in den Modus "Bearbeiten" und das EditItemTemplate wird automatisch angezeigt.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X