簡體   English   中英

ASP.NET Dynamic用戶控件保存數據問題

[英]ASP.NET Dynamic user controls save data issue

這是我所擁有的

  1. 會話中駐留的一組業務實體(例如, Employee:{"Name":string,"Surname":string,"Salary":double, "Position":enum}

  2. 一組用戶控件( using Telerik.Web.UI ),每個用戶控件描述一個業務實體(例如EmployeeControl.ascx :用於名稱,姓氏和薪水的RadTextBoxes和用於位置的RadComboBox。控件中還有一個RadButton ,它將在控件客戶端中輸入的數據保存到某個實體,該實體在加載控件時已經知道)。

  3. 帶有RadTabStripRadMultiPage頁面,用於在不同的選項卡中呈現不同的控件

  4. 托管我們的Employee控件的目標RadTab

因此, 問題是:當我按下“ Save按鈕時,便完成了一個回發,從而清除了我的控件,並且僅在觸發Click事件之后。 我試圖通過將RadAjaxManager與OnClientClicking腳本一起使用來取消回發來避免這種情況,但是沒有成功,因為回發仍然生成,盡管它的__EVENTTARGETRadAjaxManager本身。

基本上就是這樣:

  1. 用戶選擇帶有Employee控件的選項卡。 該控件填充了Page_Load上的初始數據。 (回傳發生在重新創建控件時)

  2. 用戶修改數據。 (什么也沒有發生,沒有控件會產生回發)

  3. 用戶單擊保存。 (在重新創建控件時發生回發,然后觸發Click事件)

  4. 沒有數據被保存

  5. 當再次輸入數據並調用保存時,所有內容將按原樣保存。

我如何才能使其正常工作?

PS我通過將回發分為奇數和偶數(我在Session添加了另一個名為PostCounter的變量,每次遞增)來實現所需的結果(盡管不完全:回發完成后屏幕“閃爍”)頁面已發布)。 因此,當表達式PostCounter % 2等於0時,我通過執行__doPostback執行另一次回發,該事件的eventTarget參數是RadAjaxManagerProxy實例的ClientID ,而參數只是與該字符串中使用的任何字符串都不匹配的字符串我的常規Ajax請求。

重新創建控件時,請確保它們始終具有相同的ID。 不需要從其他控件模仿回發,按鈕是IPostBack控件,因此一切正常。

對於Sharepoint,您需要以編程方式添加AJAX設置,這種(一種AJAX,一種完整的回發)行為是典型的: http : //www.telerik.com/forums/radajaxmanager-in-webpart-on-sharepoint-2010

另外,請確保不嵌套AJAX設置(來自管理器和/或代理),RadAjaxPanels和asp:UpdatePanels: http//www.telerik.com/help/aspnet-ajax/ajax-controls-in-ajaxpanel-和-ajaxsettings.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM