c# - 无法在 Firefox 浏览器上使用 AjaxFileUpload 控件的 asp.net WebForm 中更新标签

标签 c# javascript asp.net getelementbyid

我正在使用AjaxFileUpload control在 ASP.net Web 表单上。关于OnClientUploadComplete事件,我正在使用

更新标签

document.getEleemntById("<%=TestLabel.ClientId%>").innerText="someText"

这在 Google Chrome 和 Internet Explorer 中运行良好(上传完成后标签更新正常)。但是,在 Firefox 中,调试器在 document.getElementID 处显示“未找到元素”错误。

<script type="text/javascript">
    <ajaxToolkit:AjaxFileUpload ID="AjaxFileUpload" 
                 OnUploadComplete="UploadComplete" 
                 runat="server" OnClientUploadComplete="UploadCompleteClient" OnClientUploadStart="UploadStartClient" MaximumNumberOfFiles="1" /> 

        <script type="text/javascript">
        function UploadStartClient() {

        }
        function UploadCompleteClient(sender, args) {
          //alert("upload complete");
          document.getElementById("TestLabel").innerText = "test text";

        }


       </script>

上面是我的代码片段。基于堆栈溢出的一些答案,

  • 我尝试将 java 脚本放在页面末尾
  • 并用 $(document).ready(function(){} 包围脚本。

但是这些方法不起作用,因为上传完成后标签没有更新。我隐约明白这是因为 Firefox 中的页面元素处理方式与 Chrome 或 IE 中的处理方式不同。请建议我哪里出了问题以及如何更新标签

编辑 这是我的 aspx 页面

<asp:Content runat="server" ContentPlaceHolderID = "Mainform">
     <form id="Form1" runat="server" style="border-style: hidden; border-color: inherit; border-width: medium; width: 717px; height: 606px; ">
        <ajaxToolkit:ToolkitScriptManager ID="ScriptManager1" runat="server"></ajaxToolkit:ToolkitScriptManager>
        <p>
            Upload:
        </p>
        <ajaxToolkit:AjaxFileUpload ID="AjaxFileUpload" OnUploadComplete="ProcessUpload" runat="server" OnClientUploadComplete="UploadCompleteClient" OnClientUploadStart="UploadStartClient" MaximumNumberOfFiles="1" />
        <p>
        </p>
        <p>

        <label id="TestLabel"></label>&nbsp

    </form>
    <script type="text/javascript">
            function UploadStartClient() {

            }
            function UploadCompleteClient(sender, args) {
                //alert("upload complete");
                document.getElementById("<%=TestLabel.ClientID%>").text = "test Message";

            }

   </script>
</asp:Content>

最佳答案

ASPX:

<asp:Label ID="TestLabel" runat="server"></asp:Label>

JavaScript:

function UploadCompleteClient(sender, args) 
{      
    $('#<%= TestLabel.ClientID %>').html('someText');
}

关于c# - 无法在 Firefox 浏览器上使用 AjaxFileUpload 控件的 asp.net WebForm 中更新标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24441179/

相关文章:

php - 如何删除浏览器在一个请求期间添加的所有 cookie?

javascript - 如何在 JavaScript 中格式化连接的异常字符串

javascript - Awesomium 点击标签 C#

c# - 网站发布过程中未在项目中找到数据库

c# - 是否有快速且可扩展的解决方案来保存数据?

c# - 为什么我不能在 Windows 10 计算机上使用 HttpListener? (System.PlatformNotSupportedException)

c# - Asp.Net Core 3.1 Cookie 身份验证循环到登录页面

c# - 查看 RadioButtonList 是否具有选定值的最佳方法是什么?

c# - 不向 Web 服务发送数据

c# - 在构建报告中合并 NUnit 和 NAnt 输出