javascript - AsyncFileUpload 在 AjaxControlToolkit 中有逻辑错误,当组件在不同的选项卡中时,因此不显示

标签 javascript ajaxcontroltoolkit

我正在使用 AjaxControlToolkit 的 Nov 版本,我发现了一个逻辑错误,但我正试图找出在星期六之前解决这个问题的最佳方法,以便该程序可以在 IE 上运行。

此问题仅在IE上有错误,在Firefox3.5上有效。

我在选项卡上有一个 AsyncFileUpload 组件,当该函数运行时它似乎不可见,因此偏移宽度为零。

问题出在文件 AsyncFileUpload.pre.js 中,在函数 _app_onload 中,以及这一行: this._innerTB.style.width = (this._inputFile.offsetWidth - 107) + "px";

我不想从源代码编译它,但这可能是我最好的选择,所以我可以修复错误。

但是,这可能是我的解决方法: this._innerTB.style.width = ((this._inputFile.offsetWidth == 0) ? 200 : this._inputFile.offsetWidth) - 107) + "px";

但是,不知道有没有更好的解决办法。

我可以在我的 javascript 类中编写一个新的原型(prototype)函数并修复逻辑错误,这比重新编译要好。如果我在代码中修复它,那么每当我进行更新时,我都需要不断替换该行,直到它在代码库中得到修复。

但是,我想弄清楚是否有办法让元素知道它刚刚变得可见,因为任何时候你需要知道元素的实际宽度然后你才能真正设置它直到它被显示。我想不出一种方法来知道这一点,所以我倾向于做的是在第一次选择选项卡时修复选项卡上的元素,但是,对于通用库来说这不是一个可能的解决方案。

主要问题的位置

因此,在我提交有关此问题的错误报告之前,我很好奇是否有更好的方法来完成此操作,而不是在页面加载后完成,并假设最小宽度 这可能是错误的。 <-- 问题位于此处

我正在使用以下代码创建元素:

                   <cc1:AsyncFileUpload ID="AsyncFileUpload1" runat="server" 
                        OnClientUploadError="uploadError" OnClientUploadStarted="StartUpload" 
                        OnClientUploadComplete="UploadComplete" 
                        CompleteBackColor="Lime" UploaderStyle="Modern" Width="400px"
                        ErrorBackColor="Red" ThrobberID="Throbber"  
                        onuploadedcomplete="AsyncFileUpload1_UploadedComplete" 
                        UploadingBackColor="#66CCFF" />

如果它有任何不同,我正在使用它,因为 ToolkitScriptManager 似乎引入了其他错误,但这可能是我的错误:

<ajax:AjaxScriptManager ID="scriptmanager1" runat="server" EnablePartialRendering="true" ></ajax:AjaxScriptManager>

我不确定 LoadScriptsBeforeUI 是否有用,但我相信我希望在实际加载脚本之前完成 UI。

我发现有趣的是,当dom树完成时,我设置的宽度实际上并没有设置。

最佳答案

尝试将此属性添加到您的脚本管理器

LoadScriptsBeforeUI="true"

我已经下载了源代码并修复了代码线,但仍然无法正常工作, 然后我将这个属性添加到脚本管理器中,它起作用了!!

如果您想更改源代码,请查看此页面以获取详细信息 http://ajaxcontroltoolkit.codeplex.com/SourceControl/network/Forks/keyoke/AyncFileUploadFix/changeset/changes/30da4b8d1c6d

关于javascript - AsyncFileUpload 在 AjaxControlToolkit 中有逻辑错误,当组件在不同的选项卡中时,因此不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2114628/

相关文章:

c# - ajaxtoolkit 日历扩展器不会显示所有日期

asp.net - 密码强度定位问题

javascript - 使用 Ajax 在同一个 PHP 文件 (JSON) 中进行 POST 和 GET

javascript - JSON @attributes 和@association 级别与 js 和/或 angularjs

javascript - 将 "active"类属性添加到 React 中的单击项

c# - 检测 AutoCompleteExtender 选择事件

c# - 在 AJAX Accordion 中更新 DataGrid

javascript - 鼠标悬停时更改特定 div 的不透明度,并添加文本标签

javascript - 从网站获取 href 属性的完整列表

asp.net - 单击按钮时获取 asyncfileupload 控件文件名