我在telerik:radwindow中使用了usercontrol。
在父页面中使用radwindow。我在用户控制页面中使用了combobox控件。当组合框值发生变化时,radwindow会自动关闭。
我的代码在这里。
<telerik:RadWindowManager ID="radWinApproveforSite" runat="server">
<Windows>
<telerik:RadWindow ID="RadWinSiteApproval" align="center" Skin="Sunset" Style="text-align: center" Behaviors="Minimize, Maximize,Close" Modal="true" ReloadOnShow="true" ShowContentDuringLoad="false" runat="server" Width="700" Height="565" VisibleOnPageLoad="false">
<ContentTemplate>
<div id="divPopup" style="height: 500px">
<table>
<tr>
<td>
<UC:SiteApprove ID="UCSiteApprove" runat="server"</UC:SiteApprove>
</td>
</tr>
</table>
</div>
</ContentTemplate>
</telerik:RadWindow>
</Windows>
</telerik:RadWindowManager>
我的组合框属性auotopostback = true。因为一个组合框与另一个组合框相关。我需要不关闭radwindow。谢谢提前.. :))
答案 0 :(得分:1)
我猜你正在使用javascript打开radwindow。当使用javascript打开时,无论何时回发页面,visible
的(RadWindow
)状态都将恢复为之前回发页面时的状态。不幸的是,这意味着在RadWindow
内回发可能会有问题;您可以在下拉列表发回时将VisibleOnPageLoad
设置更改为true
,但是这意味着如果在关闭RADwindow之后页面重新发布,它将重新打开这些postabacks,有很多方法为了解决这个问题,我的偏好将是以下之一:
RadWindow
的内容,这样可以减少页面的视图状态和性能,因为它可以按需加载。RadWindow
的可见性状态(例如checkbox
),并在每次加载时确保将可见性设置为与此控件定义的设置相匹配。AutoPostBack
,使用javascript更新第二个下拉列表,重新绑定结果或使用网络服务根据所选值进行填充。还有其他修正可能会使用AjaxPanel
或AjaxManager
,并且需要提供合理数量的代码。
答案 1 :(得分:0)
在内容模板中使用AJAX,或将UC移动到您将在RadWindow中加载的完整页面:http://www.telerik.com/help/aspnet-ajax/radwindow-ajaxifying.html。这只是在ContentTemplate中添加RadAjaxPanel的一行。