Pregunta

Tengo la configuración siguiente. Cuando pulso en el enlace 'Editar' en la CommandField, un evento RowEditing es despedido, pero la fila no permite que corrija; En concreto, el DropDownList no aparece.

Mi código parece ajustarse a todos los ejemplos que puedo encontrar.

Probablemente estoy perdiendo algo muy básico, ya que parece que soy la única persona en el Internet que tienen este problema. Estoy desesperado por otro par de ojos.

Gracias.

    <asp:GridView ID="grdvMachine1" runat="server" AutoGenerateColumns="False" CellSpacing="2"
    CssClass="GridViewFormat" GridLines="None" Width="500px"
    OnRowUpdating="grdvMachine1_RowUpdating" OnRowUpdated="grdvMachine1_RowUpdated"
    OnRowEditing="grdvMachine1_RowEditing" OnRowDeleting="grdvMachine1_RowDeleting">
    <PagerSettings Position="Top" />
    <FooterStyle BackColor="#CCCCCC" ForeColor="Black" />
    <Columns>
        <asp:BoundField DataField="Day Of Week" HeaderText="Day Of Week" SortExpression="Day Of Week" />
        <asp:TemplateField HeaderText="Package" SortExpression="Package">
            <EditItemTemplate>
                <asp:DropDownList ID="comboPackageNames"
                    runat="server"
                    DataSourceID="PackageNames"
                    DataTextField="PackageName"
                    DataValueField="PackageName"
                    SelectedValue='<%# Bind("Package") %>'>
                </asp:DropDownList>
                <asp:ObjectDataSource ID="PackageNames" runat="server" SelectMethod="GetSPPList"
                    TypeName="PCS.WebApp.DefaultSchedules">
                </asp:ObjectDataSource>
            </EditItemTemplate>
             <ItemTemplate>
                <asp:Label ID="Label1" runat="server" Text='<%# Eval("Package") %>' />
            </ItemTemplate>
       </asp:TemplateField>
        <asp:CommandField ShowEditButton="true" ShowDeleteButton="true"/>
    </Columns>
    <RowStyle BackColor="#EEEEEE" ForeColor="Black" HorizontalAlign="Center" VerticalAlign="Middle" />
    <EmptyDataTemplate>
        There is no schedule for the selected machine
    </EmptyDataTemplate>
    <SelectedRowStyle BackColor="#008A8C" Font-Bold="False" ForeColor="White" />
    <PagerStyle BackColor="#999999" ForeColor="Black" HorizontalAlign="Center" />
    <HeaderStyle BackColor="#000084" Font-Bold="True" ForeColor="White" HorizontalAlign="Center"
        VerticalAlign="Middle" />
    <AlternatingRowStyle BackColor="Gainsboro" />
</asp:GridView>
¿Fue útil?

Solución 3

no tenía un ObjectDataSource para el GridView. Estaba poblarlo en el código subyacente, pero al parecer no se puede hacer eso y utilizar un CommandField.

Otros consejos

Su código se ve bien para mí, también. Aquí hay un par de cosas que podrían ayudar a la solución de problemas:

  1. Intente reemplazar DropDownList y ObjectDataSource del EditItemTemplate con un texto sencillo, a continuación, ver si el texto aparece cuando se hace clic en Editar.
  2. Trate de enganchar el GridView hasta un objeto de origen de datos, y eliminar el evento OnRowEditing de la etiqueta GridView. A continuación, ver si los interruptores de GridView a modo de edición de OK.
  3. Intente mover el ObjectDataSource fuera del GridView. No sé si hace alguna diferencia, pero por lo general tienen mina ubicada fuera.

Háganos saber si esto cambia nada por ti.

Prueba a eliminar sus packagenames SAO desde dentro de su GridView. No sé a ciencia cierta, pero es un poco extraño tener que anida dentro del GridView.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top