Silverlight - 动态创建控件而不进行任何回发

时间:2010-09-27 12:43:07

标签: c# asp.net silverlight dynamic

我可以动态创建Silverlight中的控件而无需回发到服务器(即使是异步的)。 silverlight drag-n-drop是否需要回发?

我问这个是因为我有一个asp.net应用程序,我动态创建/删除了很多控件。因此,在回发之后,我收到视图状态的错误,指出控件树与视图状态树不匹配。

我可以在Silverlight中避免此类问题吗?

4 个答案:

答案 0 :(得分:2)

在Silverlight控件/应用程序中完成的所有操作都发生在客户端上。 Web服务调用,如果有任何异步发生。这就是使用silverlight的优势

答案 1 :(得分:1)

是的,您可以动态地向页面添加控件,而无需往返服务器。

拖放也在客户端执行。

将Silverlight视为更像桌面应用程序,只与服务器通信以获取/保存数据。

在Silverlight中动态添加控件就像 newing 相应的控件类并将其插入渲染树一样简单(例如,将其添加到父控件中)。

答案 2 :(得分:1)

以下是一个示例:http://asd.murven.com/blog/post/2009/10/16/Silverlight-Adding-controls-dynamically.aspx

但是,我不建议切换到Silverlight只是为了杀死这个bug。只有当您真正需要类似客户端的应用程序而不是真正的Web应用程序时。 ASP.NET也适用于动态创建控件。请记住在每次回发期间初始化服务器上​​的控件。如果这没有帮助,我建议您使用一些代码提交问题描述,以帮助我们解决问题。

溴。的Morten

答案 3 :(得分:0)

Silverlight中发生的绝大部分内容都不涉及回发。事实上,我认为Silverlight代表了一种完全不同的心态。每当有来自Silverlight的回发时,它几乎总是异步的,并且没有服务器需要担心的“视图状态”。在我看来,它使ASP.NET在编写Web应用程序时看起来像个笑话。