DropDownList в GridView недоступен при редактировании - PullRequest
2 голосов
/ 11 февраля 2009

У меня есть настройки ниже. Когда я нажимаю ссылку «Редактировать» в CommandField, происходит событие RowEditing, но строка не позволяет мне редактировать; в частности, DropDownList не отображается.

Кажется, мой код соответствует всем примерам, которые я могу найти.

Я, вероятно, упускаю что-то очень простое, так как я, кажется, единственный человек в интернете, имеющий эту проблему. Я отчаянно нуждаюсь в другой паре глаз.

Спасибо.

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

Ответы [ 3 ]

0 голосов
/ 15 марта 2009

Попробуйте удалить ODS PackageNames из вашего GridView. Я не знаю наверняка, но это немного странно, когда он вложен в GridView.

0 голосов
/ 17 марта 2009

У меня не было ObjectDataSource для GridView. Я заполнил его в коде позади, но, видимо, вы не можете сделать это и использовать CommandField.

0 голосов
/ 15 марта 2009

Твой код тоже мне подходит. Вот несколько вещей, которые могут помочь при устранении неполадок:

  1. Попробуйте заменить DropDownList и ObjectDataSource в EditItemTemplate каким-нибудь простым текстом, а затем посмотрите, появляется ли этот текст при нажатии кнопки "Изменить".
  2. Попробуйте подключить GridView к объекту DataSource и удалите событие OnRowEditing из тега GridView. Затем посмотрите, не переходит ли GridView в режим редактирования.
  3. Попробуйте переместить ObjectDataSource за пределы GridView. Я не знаю, имеет ли это какое-то значение, но обычно я располагаю снаружи.

Дайте нам знать, если это что-то изменит для вас.

...