【发布时间】:2014-03-26 07:38:33
【问题描述】:
这就是我所拥有的
驻留在会话中的一组业务实体(例如,
Employee:{"Name":string,"Surname":string,"Salary":double, "Position":enum}一组用户控件 (
using Telerik.Web.UI),每个控件都描述一个业务实体(例如,EmployeeControl.ascx: 用于姓名、姓氏和薪水的 RadTextBoxes 和用于职位的 RadComboBox。控件中还有一个RadButton,它将控件客户端输入的数据保存到某个实体中,这个实体在控件加载的时候就已经知道了)。带有
RadTabStrip和RadMultiPage的页面,用于在不同的标签中呈现不同的控件托管我们的员工控件的目标
RadTab。
所以,问题是:当我点击Save 按钮时,回发完成,从而清除我的控件,然后才触发Click 事件。我试图通过使用带有OnClientClicking 脚本并取消回发的RadAjaxManager 来避免它,但没有成功,因为仍然会生成回发,尽管它的__EVENTTARGET 本身就是RadAjaxManager。
基本上是这样的:
用户选择一个带有 Employee 控件的选项卡。控件填充了
Page_Load上的初始数据。 (重新创建我的控件时会发生回发)用户修改数据。 (什么都没有发生,没有控件生成回发)
用户点击保存。 (重新创建我的控件时会发生回发,然后触发 Click 事件)
未保存数据
当再次输入数据并调用 save 时,一切都按原样保存。
我怎样才能使它正常工作?
附:通过将回发分为奇数和偶数(我在Session 中添加了另一个名为 PostCounter 的变量,该变量每隔页面发布时间)。因此,当表达式 PostCounter % 2 等于 0 时,我通过执行 __doPostback 执行另一个回发,其 eventTarget 参数是 RadAjaxManagerProxy 实例的 ClientID,而参数只是一些不匹配的字符串在我的常规 Ajax 请求中使用。
【问题讨论】: