2015-08-19 2 views
0

У меня есть ListBox внутри моего диалога Jquery,Listbox OnSelectedIndexChanged не работает

<div id="dialog"> 
<asp:UpdatePanel ID="updatePanel1" runat="server"> 
<ContentTemplate> 
<asp:ListBox ID="lbxTitle" runat="server" style="width:400px;height:100px;" OnSelectedIndexChanged="lbxTitle_SelectedIndexChanged"> 
    <asp:ListItem value="2" Text="abc" /> 
    <asp:ListItem value="3" Text="def" /> 
</asp:ListBox> 
<br /> 
<fieldset> 
    <asp:Label ID="lblContent" runat="server" style="height:200px;" /> 
</fieldset> 
</ContentTemplate> 
</asp:UpdatePanel> 
</div> 

А в коде позади, у меня есть эта функция

protected void lbxTitle_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    lblContent.Text = "test"; 
} 

Я не оденьте AutoPostBack = "истина" потому что он обновит всю страницу и закроет мой диалог.

Как сделать так, чтобы при щелчке пользователем элемента в списке он отображал «тест» на внутреннем диалоге метки.

Теперь он ничего не делает, если я изменю выбранный элемент.

+0

Он не обновляет всю страницу, а только содержимое «UpdatePanel». Асинхронная обратная передача всегда остается полной обратной записью. –

+0

Посмотрите, разрешит ли мой ответ это для вас. – thewisegod

+0

Я попытался поставить 'autopostback', но он обновляет всю страницу, хотя у меня есть' listbox' внутри 'updatePanel'. @TimSchmelter – Bee

ответ

0

Добавить AutoPostBack и после создания диалога переместить его обратно в форму:

$("#dialog").parent().appendTo($("form:first")); 

Попробуйте это:

<script type="text/javascript"> 

    $(function() { 
     <% if (Page.IsPostback) { %> 
      $('id of your listbox').change(); 
     <% } %> 
    }); 

</script> 
+0

Хорошо, теперь он называется функцией справа, однако он все еще обновляет всю страницу. Диалог закрывается, когда страница обновляется. @thewisegod – Bee

+0

См. мой измененный код и посмотрите, как это работает для вас. – thewisegod

1

Вы должны поставить AutoPostBack, то вы можете использовать AsyncPostBack, чтобы предотвратить всю страницу постбэк ...

согласно следующему кодекса

<asp:UpdatePanel ID="updatePanel1" runat="server" UpdateMode="Conditional"> 
     <ContentTemplate> 
      <asp:ListBox ID="lbxTitle" runat="server" style="width:400px;height:100px;" OnSelectedIndexChanged="lbxTitle_SelectedIndexChanged" AutoPostBack="true"> 
       <asp:ListItem value="2" Text="abc" /> 
       <asp:ListItem value="3" Text="def" /> 
      </asp:ListBox> 
      <br /> 
      <fieldset><asp:Label ID="lblContent" runat="server" style="height:200px;" /> 
      </fieldset> 
     </ContentTemplate> 
     <Triggers> 
      <asp:AsyncPostBackTrigger ControlID="lbxTitle" /> 
     </Triggers> 
    </asp:UpdatePanel> 
Смежные вопросы