我的页面(productionEntry.aspx)有一个radGrid,它包含一个radAjaxManager,其设置允许radGrid的异步回发:
<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server">
<AjaxSettings>
<telerik:AjaxSetting AjaxControlID="RadGridProductionOrders">
<UpdatedControls>
<telerik:AjaxUpdatedControl ControlID="RadGridProductionOrders" />
</UpdatedControls>
</telerik:AjaxSetting>
</AjaxSettings>
</telerik:RadAjaxManager>
所以RadGridProduictionOrders异步回发,这很好。
然而,现在,radGrid的editForm是一个弹出式用户控件,我想要完成的是异步回发一些用户控件的内容。 我已尝试将radAjaxManagerProxy和radAjaxPanel一起使用,并在用户控件中单独使用。 每次页面根据来自productionEntry.aspx页面的radAjaxManager中的设置异步回发。
这是用户控件中radAjaxManagerProxy的标记。我想回发的内容是在Panel1中:
<telerik:RadAjaxManagerProxy ID="RadAjaxManagerProxy1" runat="server">
<AjaxSettings>
<telerik:AjaxSetting AjaxControlID="Panel1">
<UpdatedControls>
<telerik:AjaxUpdatedControl ControlID="Panel1" />
</UpdatedControls>
</telerik:AjaxSetting>
</AjaxSettings>
我如何设置页面和/或用户控件来完成我需要的工作?
答案 0 :(得分:1)
我就这个问题联系了telerik,他们的答复是不可能的:
虽然编辑表单位于弹出窗口中,但它仍然是RadGrid的一部分。在服务器上,弹出控件呈现为RadGrid的一部分,因此它是RadGrid的组成部分。 牢记这一点,并且知道RadGrid是一个复合控件,应该作为一个整体进行更新,我担心RadajaxManager无法满足您的要求。回发将始终由RadGrid进行,您将需要始终更新RadGrid,它将关闭并重置编辑表单中的值。
希望这会帮助其他人继续前进......答案 1 :(得分:1)
我知道已经有一段时间了,但这就是我所建立的和我所做的:
我有一个网格作为数据输入面板 - 在编辑模式下有3个固定行。有一种情况很可能是企业会回来并要求提供相同数据的“显示历史”视图,因此网格是我想要构建的(而不是固定的表格)以保护自己免受变化。 / p>
我没有使用GridBoundColumn,而是使用带有edititemtemplate的GridTemplate列,如下所示:
<EditItemTemplate>
<telerik:RadTextBox runat="server" ID="Address1" Text='<%#Bind("Address1") %>' OnTextChanged="Address1_OnTextChanged" AutoPostBack="True"></telerik:RadTextBox>
<asp:UpdatePanel runat="server"><Triggers><asp:AsyncPostBackTrigger ControlID="Address1"/></Triggers></asp:UpdatePanel>
</EditItemTemplate>
这允许我在每个文本框中每行进行一次简单的数据绑定回调,而不会对前端进行任何图形更改或中断用户体验。这会在页面上产生额外的开销,但应该可以忽略不计。
代码隐藏看起来像:
protected void Address1_OnTextChanged(object sender, EventArgs e)
{
//Find which row you're on
var id = ((sender as RadTextBox).Parent.Parent as GridDataItem).GetDataKey("ID");
//Do whatever you need to do with the data by using the ID to match.
myList[id].Address1 = (sender as RadTextBox).Text;
}
编辑:我正在使用Supervising Presenter模式,在没有其他逻辑的情况下,允许视图直接与模型对话。如果你做的不同,这可能需要额外的开销。