我確信這已被回答,但我找不到它......也許是因爲這些術語被用於許多不同的問題......無論如何。建立在回發上的動態控件(asp.net)
是如何存儲關於在init事件回發等構建動態控制信息的最佳方式......
例如採取經典的「調查問卷」的情景...... question.aspx?ID = 1
- 從查詢字符串獲取ID
- 負載從那裏過的問題和動態建立控制, 或動態添加的每個問題 如何以往任何時候都多 問題等
- 頁面回用戶控件(用戶按下提交我猜!)在init事件
- ... 應該在哪裏你有已經存儲的ID來 重新創建問題控件?
事情,我已經試過至今/念頭:
- 我最初存儲的值在 視圖狀態,因爲它是相關的 頁面,但視圖狀態值不 提供頁面初始化(或是否?)
- 隱藏變量,然後訪問表單集合中的值
- 會話 - 我不想使用會話,似乎有問題,例如如果用戶查看兩份問卷怎麼辦?
- 再次查詢字符串?但這似乎太容易被改變,動態控制只是沒有意義...
- 在控制自己?例如無論問卷編號如何,只需簡單地將問題編號刪除即可?假設控制ID將採用某種格式,如controlQ#例如控制Q1,控制Q2。這意味着每個問題ID必須是唯一的
任何幫助/指導等非常感謝!
如果我在onload事件創建它們,它聽起來,我必須手動恢復,然後在那裏,如果我在init事件創建他們,他們會自動恢復回傳值吧? – davidsleeps 2010-01-17 21:23:56
我們還在使用usercontrols嗎? 您不必手動恢復回發值。這是自動完成的。但要注意的是,框架首先需要知道你的控制。如果你用aspx聲明瞭你的控件,框架將爲你完成這項工作。但是如果您在生命週期中添加控件(又名動態),則還必須在回發中執行此操作。 – karlis 2010-01-19 09:25:05
可以說你在第一個請求(獲取)中添加一個地址控件到你的佔位符。用戶填寫一些字段(街道,城市..)。在回發框架中將postdata分配給控件。如果現在沒有使用第一步中設置的ID進行控制,則會發生異常。如果在處理回發數據之前添加控件,框架可以找到控件並添加數據。 在此之後,你可以在正常方式(數據保存等)處理你的頁面。完成此任務後,您可以更改您的控件,因此可能會刪除地址控件並添加手機連接 – karlis 2010-01-19 09:27:24