2010-09-27 53 views
1

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

我问这是因为我有一个asp.net应用程序,我动态地创建/删除大量的控件。所以在回发后,我得到视图状态错误,指出控制树与视图状态树不匹配。

我可以在Silverlight中避免这些问题吗?

回答

0

绝大多数在Silverlight中发生的事情都不涉及回传。事实上,我会说Silverlight代表了一种完全不同的思维模式。无论何时从Silverlight发布回发,它几乎总是异步的,并且服务器不需要担心的“视图状态”。在我看来,它使ASP.NET在编写Web应用程序时看起来像是一个笑话。

1

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

拖放也执行客户端。

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

在Silverlight中动态添加控件的步骤与一样简单合适的控件类并将其插入到渲染树中(例如将其添加到父控件中)。

2

在Silverlight控件/应用程序中完成的所有事情都发生在客户端上。 Web服务调用如果任何异步发生。多数民众赞成使用Silverlight的优势

1

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

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

Br。 Morten