2010-05-29 74 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

相关问题