簡體   English   中英

Microsoft JScript運行時錯誤:“ clientUploadComplete”未定義

[英]Microsoft JScript runtime error: 'clientUploadComplete' is undefined

我的用戶控制代碼拋出javascript錯誤。

如果我不在主頁上包含uplNewRequestCreation ,則一切正常。 服務器和客戶端的所有文件上傳功能均被觸發。 在主頁中包含更新面板的原因是為了避免回發整頁。

我已經嘗試了幾種來自在線資源的解決方案,但是沒有一個幫助。

  1. 向用戶控制頁面添加了scriptmanagerproxy
  2. 在page_load后面的代碼中定義了javascript-此解決方案有效,但未觸發OnUploadedComplete =“ uplFile1_UploadedComplete”
  3. 將文件上傳用戶控件添加為主更新面板的觸發器,並將updatemode更改為有條件的

錯誤消息:初始化FileUpload.ascx.cs后,顯示以下錯誤消息。 Microsoft JScript運行時錯誤:“ clientUploadComplete”未定義

非常感謝您的幫助!

謝謝!!!!

這是我的代碼結構。

用戶控制

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="FileUpload.ascx.cs"
    Inherits="QTrack2.UserControls.FileUpload" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>

<script type="text/javascript">
    function clientUploadComplete(sender, args) {

        document.getElementById('<%= btnTrigger.ClientID %>').click();
    }
</script>

<div style="float: left; margin-left: 0px;">
    <asp:GridView ID="grdUploadControls" runat="server" AutoGenerateColumns="False" OnRowDataBound="grdUploadControls_RowDataBound"
        CssClass="uploadTable" Caption="CIQ Files Required To Be Uploaded">
        <Columns>
            <asp:TemplateField>
                <ItemTemplate>
                    <asp:Label ID="lblCIQType" CssClass="Label" runat="server" Text='<%#Eval("Key")%>'></asp:Label>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField Visible="false">
                <ItemTemplate>
                    <asp:Label ID="isReqlblCIQType" CssClass="Label" runat="server" Text='<%#Eval("Value")%>'></asp:Label>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField ControlStyle-CssClass=" ">
                <ItemTemplate>
                    <asp:AsyncFileUpload ID="uplFile1" runat="server" OnUploadedComplete="uplFile1_UploadedComplete"
                        CompleteBackColor="#E5FFE5" ErrorBackColor="#F4ADAE" Width="300" UploaderStyle="Modern"
                        ClientIDMode="AutoID" OnClientUploadComplete="clientUploadComplete"/>
                </ItemTemplate>
            </asp:TemplateField>
        </Columns>
    </asp:GridView>
    <asp:HiddenField ID="hdnFileSavePath" runat="server" Value="" />
    <br />
</div>
<div style="float: left; margin-left: 20px; height: 40%; width: 650px; overflow: auto;
    padding-right: 20px;">
  <%--  <asp:UpdatePanel ID="upnlFileDisplayHolder" runat="server">
        <Triggers>
            <asp:AsyncPostBackTrigger ControlID="btnTrigger" />
        </Triggers>
        <ContentTemplate>--%>
            <asp:GridView ID="grdFileDisplay" runat="server" AutoGenerateColumns="false" CssClass="uploadTable"
                OnRowDataBound="grdFileDisplay_RowDataBound" Caption="CPM Files Currently Uploaded">
                <Columns>
                    <asp:TemplateField>
                        <ItemTemplate>
                            <asp:Label ID="lblFileType" CssClass="Label" runat="server" Text='<%#Eval("Value")%>'></asp:Label>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField>
                        <ItemTemplate>
                            <asp:Label ID="lblFileName" CssClass="Label" runat="server" Text='<%#Eval("Key")%>'></asp:Label>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField>
                        <ItemTemplate>
                            <asp:Button ID="btnDeleteFile" CssClass="button" runat="server" Text="Remove" OnClick="btnDeleteFile_Click" />
                        </ItemTemplate>
                    </asp:TemplateField>
                </Columns>
            </asp:GridView>
            <div>
                <asp:Button ID="btnTrigger" runat="server" Text="fdkl" Style="display: none;" OnClick="btnTrigger_Click" />
            </div>
       <%-- </ContentTemplate>
    </asp:UpdatePanel>--%>
</div>
<div style="clear: both">
</div>

主頁調用用戶控件

<%@ Page Title="New Request" Language="C#" MasterPageFile="~/Site.IM.master" AutoEventWireup="true"
    CodeBehind="GenericNewRequest.aspx.cs" Inherits="QTrack2.CreatorPages.NewRequest.Scripts.Generic.GenericNewRequest" %>

<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>
<%@ Register TagPrefix="uc1" TagName="fileUploadUserControl" Src="~/UserControls/FileUpload.ascx" %>
<%@ Register TagPrefix="uc2" TagName="ciqValidationUserControl" Src="~/UserControls/ciqValUserControl.ascx" %>
<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="server">
    <script type="text/javascript">
        // This function is called whenever the user selects expected completion date from view # 3.
        // This function checks if the selected date is less than currentDate and sets to the currentDate if true.

        function checkSelectedDate(sender, args) {
            if (sender._selectedDate < new Date()) {
                var previouslySelectedDate = sender._textbox.value;
                sender._selectedDate = new Date();
                // set the date back to the current date
                sender._textbox.set_Value(sender._selectedDate.format(sender._format))
            }
        }

    </script>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
    <asp:UpdatePanel ID="uplNewRequestCreation" runat="server">
    <ContentTemplate>
    <asp:MultiView ID="mviewNewRequestCreation" runat="server" ActiveViewIndex="0">
       <View #1>
        .....
       </View #1>

       <View # 2>
           <uc1:fileUploadUserControl ID="multUplUserCntrol1" runat="server" />
          .....
       </View # 2>

       <View # 3>
       ....
       </View #3>
   </asp:MultiView>
   </ContentTemplate>
</asp:UpdatePanel>

很明顯,您的Javascript函數未在更新面板中注冊,您可以執行以下操作:

  • 在用戶控件外部和更新面板外部聲明此功能clientUploadComplete

或者,您也可以:

  • 調用document.getElementById('<%= btnTrigger.ClientID%>')。click(); 函數未使用javascript函數,類似這樣...

    OnClientUploadComplete =“ document.getElementById('btnTrigger_clientName')。click()”

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM