Событие DropDownList в Accordian и GridView

Событие, привязанное к DropDownList в автономном GridView, очевидно, будет работать таким образом, но в этом сценарии все немного сложнее.

Событие не запускается для DropDownList. Что интересно, так это событие, привязанное к кнопке Срабатывает. Не уверен, в чем разница между DropDownList и TextBox.

Я пробовал как OnSelectedIndexChanged, так и OnTextChanged - ни одна из них не работает.

Вложенность следующая:

  1. GridView A
  2. Аякс Аккордеон
  3. GridView B (с DropDownList)

    <AjaxToolkit:AccordionPane ID="AccordionPane1" runat="server">
        <Header>        
        </Header>
        <Content>
            <asp:GridView runat="server" ID="gv" AutoGenerateColumns="false"
                BorderWidth="0" AlternatingRowStyle-BorderStyle="None" ShowFooter="true">
                <Columns>
                    <asp:TemplateField HeaderText="Id">
                        <ItemTemplate>
                            <asp:Label runat="server" ID="lblId" Text='<%# Eval("Id") %>'></asp:Label>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="Type">
                        <ItemTemplate>
                            <asp:Label runat="server" ID="lblType"></asp:Label>
                        </ItemTemplate>
                        <FooterTemplate>
                            <asp:DropDownList runat="server" ID="ddlType" OnTextChanged="ddlType_SelectedIndexChanged"
                                AutoPostBack="true">
                            </asp:DropDownList>
                            <asp:Button runat="server" ID="btnTest" OnClick="btnTest_Click" Text="TEST" />
                        </FooterTemplate>
                    </asp:TemplateField>                                               
                </Columns>
            </asp:GridView>
        </Content>
    

Thank you!

ОБНОВЛЕНИЕ

Оказывается, это не имело ничего общего с вложенными объектами GridView или Accordion.

После добавления следующего, событие теперь успешно запускается:

            if (!Page.IsPostBack)
                Populate(object);

person dankeshawn    schedule 09.04.2012    source источник
comment
Пожалуйста, посмотрите свой код. Я исправил, чтобы часть <accordionPane> была скрыта здесь, и вы перезаписали мое исправление =) Весь код должен иметь отступ как минимум на 4 пробела.   -  person Josh Darnell    schedule 09.04.2012
comment
Спасибо, исправил код.   -  person dankeshawn    schedule 09.04.2012
comment
Нет проблем =) Также ознакомьтесь с этим решением. Это определенно звучит похоже.   -  person Josh Darnell    schedule 09.04.2012
comment
Это помогло. Оказалось, что это не имело ничего общего с вложением GridViews / Accordian - это был упущение классической проблемы. Я отправлю решенное продолжение. Спасибо за вашу помощь!   -  person dankeshawn    schedule 09.04.2012
comment
Здорово! Рад, что смог помочь. Вам действительно стоит опубликовать это решение в качестве ответа на свой вопрос, а затем установить флажок рядом с ним. Так будущие посетители узнают, как вы решили эту задачу =) Удачи вам!   -  person Josh Darnell    schedule 09.04.2012
comment
Я буду. Я пытался, но в нем упоминалось о том, что новые участники могут не ответить на свой вопрос в течение 8 часов после его публикации.   -  person dankeshawn    schedule 09.04.2012
comment
Ха, действительно, я забыл об этом. Что ж, если вы думаете об этом завтра, вернитесь и опубликуйте ответ.   -  person Josh Darnell    schedule 09.04.2012


Ответы (1)


Оказывается, это не имело ничего общего с вложенными объектами GridView или Accordion.

После добавления следующего, событие теперь успешно запускается:

            if (!Page.IsPostBack)
                Populate(obj);
person dankeshawn    schedule 09.04.2012