返回首页

(VS2010的。NET 4.0中){A}(VS2005的。NET 3.5中)简介
这篇文章是关于如何定制的外观和感觉,从Microsoft AJAX Control Toolkit中的AsyncFileUpload。 VS 2010和VS 2005中的源代码是可用的。也可进行现场演示给你看它是如何运行。背景
AJAX控件工具包是微软​​的开源项目。该工具包,其中有一个非常有用的控制??代码> AsyncFileUpload??你可以看到微软的官方演示控制
它的强大,但很难自定义其内置的属性。
我成功地通过两种方法定制。你可以看到我的现场演示。使用代码
您提取的源代码后,你可以直接打开解决方案文件(一个VS2010的,只是在VS2005的情况下)。
为了简单起见,他们都下quot编辑;网络sitequot;项目不quot;网络applicationquo​​t。您可以直接通过点击quot运行; runquot;从IDE。
注:VS2010项目需要NET 4.0中本地安装调试。 VS2005的项目需要。NET 3.5的本地安装调试。兴趣点
定制AsyncFileUploader的基本思想是使用面膜绝招:
AsyncFileUploader透明和有一个按钮或图像看起来覆盖AsyncFileUploader。但实际上,AsyncFileUploader蒙面按钮/图像上。因此,用户似乎单击蒙面自定义的按钮/图像,但实际点击的AsyncFileUploader。
这只是基本的想法。我在这两种方法实施。
方法1,方便快捷。基本上,你让一个类似规模AsyncFileUploader的自定义的按钮。这种方法的限制,是因为AsyncFileUploader本身的大小是很难调整(特别是高度,如果它甚至有可能),你不能让大按钮。
{A4}
方法2让我为自己感到骄傲:我们的想法是,你不能轻松地调整AsyncFileUploader大小,但可以将其移动。所以,我移动它里面的"大图片"按钮。每当用户点击,点击AsyncFileUploader获取。
为了更清晰,我有一个X / Y位置框来显示你鼠标的位置,当它在图像范围。如果你真的想看到的内部控制是如何移动的,你可以改变控制的透明值(完全透明的,它的0至,你可以改变半透明至50)。
{A5}要注意的
我没有找到一个很好的方式正常赶上超过大小上传问题。我试过的global.asax应用程序错误的醒目,也尝试错误醒目内置AsyncFileUpload。它似乎global.asax中可以捕获特定的错误,但不能把它摆好。所以,我最终使用警告用户界面和LT ="500quot; / GT从web.config中的httpRuntime maxRequestLength的。它并不完美,但所有主要浏览器。
要注意的另一件事:该解决方案还根据最新的IE9 RC,但你有IE8的兼容模式下运行。概要
代码下进行测试的主流浏览器:IE8/IE9 RC /火狐3.6/Chrome 9。真的很高兴有这样一个内置的控制工作。
希望这是在您的项目有帮助。

回答

评论会员:史蒂夫Krile 时间:2012/01/27
我对我的方式开始。然而,在年底,我采取不同的办法。控制造型隐藏,然后把图像标记此行的jQuery控制。触发的onclick ="$(本)父()找到("输入类型=文件]")( "点击")"

这模拟点击文件控制
评论会员:。lat233 时间:2012/01/27
感谢你的优秀的解决方案。但是它不会对IE9的工作。我尝试用IE 9.0.8112.16421和当我点击"上传文件"按钮,什么也没发生,有两个方法2。

你能否帮我解决这个问题呢?
感谢
评论会员:西蒙彭 时间:2012/01/27
虽然这是​​张贴,我与IE9.0的RC测试。

你说得对,它不与IE浏览器9.0的最终版本在默认情况下工作。
但是有一个变通:
您可以按一下IE9的地址栏,这是IE8的兼容性按钮旁边的小"破页"按钮。一旦点击,这是两者演示工作。我进行了测试。

至于IE9的标准模式的最终修复,我没有现在的时间。但我会考虑

感谢
评论会员:。lat233 时间:2012/01/27

我发现一个IE9的错误AJAX Control Toolkit中的固定版本,并更换成你的代码,页面正常运行在IE9。结论:这是一个AJAX Control Toolkit中的错误,不是你的{S2}

试试吧:{A6}

再次感谢您的理想解决方案。


评论会员:Vaibhav萨兰 时间:2012/01/27
嗨,
有人描述了如何验证一个文件,上传前
我如何binfd后上传的GridView完成
评论会员:?fred_ 时间:2012/01/27
出于某种原因,它不会工作有