Я использую всплывающее окно eWorldUI Calendar (ссылка внизу) внутри GridView внутри UpdatePanel.Пользовательский контроль CalendarPopup внутри GridView не обновляется, когда внутри UpdatePanel
Если я не размещаю содержимое своей страницы внутри UpdatePanel, календарь обновляется отлично, когда я обновляю строку Gridview. Однако, когда все находится внутри UpdatePanel, календарь не обновляется, поэтому он всегда сохраняет идентификатор первого ряда календаря.
Мой вопрос:
В чем разница между GridView управления «в пределах UpdatePanel» и «за пределами UpdatePanel», и есть ли какие-либо причины, почему событие элемента управления, который генерирует календарь HTML не произошло бы вообще или не произойдет в нужный момент после обновления строки gridview внутри UpdatePanel? Советы по фиксируя вопрос также оценили :)
Вот пример кода (обратите внимание, что GridView DataSource устанавливается в код)
<html>
<head> <!-- head stuff --> </head>
<body>
<form id="form1" runat="server">
<asp:scriptmanager id="ScriptManager1" runat="server"></asp:scriptmanager>
<asp:updatepanel id="UpdatePanel1" runat="server"><contenttemplate>
<asp:gridview id="GRIDVIEW1" showheader="False" showfooter="False" runat="server" autogeneratecolumns="false" onrowdatabound="GridView_RowDataBound">
<Columns>
<asp:TemplateField>
<HeaderTemplate> ... </HeaderTemplate>
<HeaderStyle cssclass="..."></HeaderStyle>
<FooterTemplate> ... </FooterTemplate>
<FooterStyle cssclass="..."></FooterStyle>
<EditItemTemplate>
<asp:textbox id="GRIDVIEW1_DATE1" text="<%# Bind('GRIDVIEW1_DATE1') %>" runat="server"></asp:textbox>
<ew:calendarpopup imageurl="../../App_Themes/Images/calendar.gif" controldisplay="Image" id="GRIDVIEW1_DATE1_CAL" runat="server"></ew:calendarpopup>
</EditItemTemplate>
<ItemTemplate>
<asp:Label id="GRIDVIEW1_DATE1" runat="server" text='<%# Bind("GRIDVIEW1_DATE1") %>'></asp:Label>
</ItemTemplate>
<ItemStyle cssclass="..."></ItemStyle>
</asp:TemplateField>
<asp:CommandField buttontype="Button" showdeletebutton="True" showeditbutton="True" causesvalidation="False" insertvisible="False"></asp:CommandField>
</Columns>
</asp:gridview>
</contenttemplate></asp:updatepanel>
</form>
</body>
</html>
Это календарь на вопрос - http://www.eworldui.net/CustomControls/CalendarPopupDemo.aspx
Редактировать
я узнал, что мой вопрос на самом деле, так как динамический HTML генерируется по календарю, на самом деле внутри <form>
, но он добавлен за пределы UpdatePanel. Это было не очевидно, потому что, как вы видите, все кажется внутри UpdatePanel. Поэтому, чтобы проверить его, я добавил <div class="outsideUpdatePanel"></div>
за пределы UpdatePanel, а при запуске в Chrome и проверке HTML я мог видеть, что сгенерированный календарь HTML появляется после моего нового div.
Я сожалею, если это кажется конкретным, я мог бы спросить то же самое в целом с какого-либо контроля, поэтому anwser не должен быть примерно Календарь. – Yann