ASP.NET Web部件:非IE浏览器中的拖放支持

时间:2010-02-08 22:04:06

标签: asp.net cross-browser web-parts

自从ASP.NET 2.0发布以来,我一直在我的网站上使用Web部件。拖放Web部件在Internet Explorer中运行良好,但在Firefox,Chrome或Safari中根本不起作用。我最近将该站点升级到ASP.NET 3.5 SP1,但我仍然无法在非IE浏览器中拖放Web部件。

如何在其他浏览器中启用拖放Web部件?

更新(2010年2月9日):

这提到了这个问题,但没有提供解决方案:http://forums.asp.net/t/1294857.aspx

更新(2010年2月19日):

这些帖子提供了一个可能的解决方案,但我一直无法在我的网站上使用它:

简而言之,这些说拖放问题在“ASP.NET Futures(2007年7月发布)”中得到了解决,但由于某些疯狂的原因,它被排除在ASP.NET 3.5 SP1之外。所以要解决,你必须下载Futures版本: http://www.microsoft.com/downloads/details.aspx?FamilyId=A5189BCB-EF81-4C12-9733-E294D13A58E6&displaylang=en

然后,您需要使用Microsoft.Web.Preview.UI.Controls.WebParts命名空间中的WebPartManager和WebPartZone。

6 个答案:

答案 0 :(得分:3)

您必须使用非常旧版本的“Atlas”,因为they fixed this quite a while ago (after beta 1)

答案 1 :(得分:3)

这可能看起来像一个愚蠢的问题,但是,如果您将以下HTML代码添加到您的页面:

<div style="background-color: red; padding: 50px; width: 100px;">&nbsp;</div>
<div style="background-color: green; width: 100px;">&nbsp;</div>

红色盒子是绿色盒子的两倍吗?

如果不是,那么您的DOCTYPE不正确会导致浏览器以Quirks模式呈现页面,基本上结束了您可能在浏览器中使用它的任何希望。

如果框的大小正确,当您尝试拖放Firefox时,Firebug控制台中是否收到任何错误消息?

最后两条评论与其他答案相关:

  1. 如果可以,我还建议您避免使用asp.net ajax并使用jQuery。你会在网上找到更多的信息,而且IMO的记录要好得多。
  2. 检查项目中的引用以验证您确实使用的是最新版本的ASP.Net Ajax。即使您的计算机具有最新版本的ASP.Net,您的项目也可能会引用bin目录中包含的旧DLL(它曾经发生在我身上,所以我应该知道!)

答案 2 :(得分:0)

我不知道您的应用程序状态如何,但我强烈建议您使用Google IG页面Web部件样式。 这是一个轻巧而重的控件,适用于所有可用的浏览器!

您可以在以下位置找到有关如何创建Google ig样式页面的完整说明:

http://userscripts.org/scripts/review/2279

请注意,这是一个开源Greasemonkey脚本。

你也可以在codeproject找到一个类似的项目

http://www.codeproject.com/KB/ajax/MakingGoogleIG.aspx?msg=3098239

希望这个帮助

答案 3 :(得分:0)

在我看来,asp.net ajax不是一个正确的工具来完成这项工作。它太丑陋了。我使用ExtJs(click here for a sample)实现了类似的任务。 ExtJs是RIA非常强大的js库。它实现起来非常简单快捷,没有任何痛苦 - 图书馆的代码几乎是完美的,文档真的很震撼。
您还可以尝试使用JQuery(webparts with JQuery)和JQuery UI实现Web部件。但与ExtJs相比,它会更加困难。

(适用2010年2月17日)
我强烈建议不要使用asp.net ajax来完成这项任务。调试非常困难。 IMO库的JS代码很丑陋,有很多陷阱,不容易定制。这就是为什么我建议使用一些不同的方法。但是如果您愿意,可以查看Dropthings门户网站的来源。它使用asp.net ajax,但它是高度定制的。它适用于FF,Chrome,Opera。 Here is the demo

答案 4 :(得分:0)

你检查过JQuery拖放支持吗?它适用于支持拖放操作的所有浏览器,并且很容易实现。

http://www.highoncoding.com/Articles/381_Drag%20And%20Drop%20With%20Persistence%20Using%20JQuery.aspx

答案 5 :(得分:0)