我有一个ASP.NET页面,显示带有数据的RadGrid。它显示成员所属的“组”列表。它显示组名称,还有“编辑”和“删除”按钮。 (页面上还有一个单独的“添加”按钮)。非常标准的东西。
当您单击按钮编辑组时,我们会在RadWindow中启动新表单。这是一个单独的ASPX页面,显示在RadWindow中。您可以编辑组的名称,以及添加/删除成员。
当您关闭窗口时,您的更改将持久保存到数据库,然后通过JavaScript启动AJAX调用。所有它真正做的是重新设置网格的DataSource(所以我们拾取我们刚刚保存到数据库的更改)并且还调用Grid.ReBind()。
我遇到的问题是,虽然一切似乎都在执行,但在刷新页面之前,更改不会出现在网格上。这是因为(我相信)即使我们更改了Grid DataSource,也不会发生回发,因此不会显示任何新内容。
我能够通过调用一点JavaScript魔法来强制页面刷新来“修复”这个问题,但这样可行,但整个页面刷新,看起来很难看。
我尝试将RadWindow添加到这样的AjaxManagerProxy中,希望它能够AJAX化网格刷新,但那并不是这样做的。
<telerik:RadAjaxManagerProxy ID="RadProxy1" runat="server">
<AjaxSettings>
<telerik:AjaxSetting AjaxControlID="RadWindowManager1">
<UpdatedControls>
<telerik:AjaxUpdatedControl ControlID="GridGroups" />
</UpdatedControls>
</telerik:AjaxSetting>
</AjaxSettings>
</telerik:RadAjaxManagerProxy>
所以...问题是,如何强制网格以AJAX方式刷新?没有强制整个页面刷新?