2010-05-29 73 views
0

目前我有一個有一系列鏈接的網絡表單。我希望能夠做的是添加一個webcontrol的內容,當其中一個鏈接被點擊。這種事情甚至可能嗎?是否有可能通過jQuery動態添加webcontrols?

如果沒有,加載一組控件(一個文本框和一個下拉框中的值來自一個鏈接,兩個文本框和另一個鏈接的複選框等)的最佳策略是什麼。我需要能夠在回發中獲取每個控件的值。

理想情況下,我希望能夠將新內容添加到acordian控件,最有可能是jQuery UI acordian。因此,每個可點擊的鏈接都會向acordian控件添加新內容。

大家對此有何看法?

回答

2

假設這確實是ASP.NET WebForms,並且您打算使用回發來提交(相當隨意)數據,那麼最好的辦法可能是使用Raj提到的某種客戶端或服務器端模板。

然後在提交表單之前,可以使用類似於此處描述的方法(Serialize form to JSON with jQuery),將動態創建的數據保存到隱藏字段中,並使用服務器端解析數據並將其變爲有意義的可以使用的對象。


如果它是在所有的選項,這種東西是微不足道的使用ASP.NET MVC做。你可以(相當容易地)將它拼接到一個現有的WebForms項目中,並且將兩個並排存在。它的主要缺點是它將會是一個富有創意的項目,未來維護該項目的人會對你的設計決策產生一些家庭不友好的評論。

+0

是啊,我很樂意爲此使用mvc,你說得對,因爲它很容易實現。不幸的是,你提到的限制因素在於,我們有一個支持團隊,當我完成之後,需要做出正面和反面的反應。 感謝您的提示! – 2010-05-29 12:33:39

0

使用ViewManager.RenderView證明這裏:

http://weblogs.asp.net/scottgu/archive/2006/10/22/Tip_2F00_Trick_3A00_-Cool-UI-Templating-Technique-to-use-with-ASP.NET-AJAX-for-non_2D00_UpdatePanel-scenarios.aspx

返回的在web服務內容,並與阿賈克斯閱讀。

更新

羅馬軍隊,我看到你說的話。克里斯,你打算從添加的新內容中發回數據嗎?如果是這樣,這是行不通的。

最好的辦法是使用ASP.NET Ajax框架和UpdatePanel。

+0

該方法的侷限性在於它不更新ViewState,因此當Chris嘗試提交數據時,ASP.NET可能會反彈一點。你會注意到演示是關於渲染內容,而不是提交回來。從那以後,微軟已經將一些工作投入到客戶端模板中。 – R0MANARMY 2010-05-29 02:40:08

+0

**我需要能夠得到每個這些控件的回傳值。** - 我要去是的,他需要將它們發回=)。 – R0MANARMY 2010-05-29 03:56:44

+0

是的,我需要訪問每個新控件中的數據以保存到數據庫。我還沒有嘗試過,但我假設我應該可以執行諸如Request [「idOfDynamicControl」]來獲取數據服務器端的內容。 – 2010-05-29 12:37:25

相關問題