为什么我无法禁用ajaxToolkit:AsyncFileUpload

时间:2016-04-21 08:27:38

标签: javascript jquery ajaxcontroltoolkit asyncfileupload

我尝试了许多东西(JS / Jquery)来禁用这个AsyncFileUpload,但没有一个正在工作......请指教..

    <ajaxToolkit:AsyncFileUpload OnClientUploadError="uploadError"
                                    OnClientUploadComplete="ajaxUploadImage_ClientUploadComplete" runat="server"
                                    ID="ajaxUploadImage" Width="400px" UploaderStyle="Modern"
                                    CompleteBackColor = "White"
                                    UploadingBackColor="#CCFFFF"  ThrobberID="imgLoader"
                                    OnUploadedComplete = "ajaxUploadImage_OnUploadComplete" 
                                     OnClientUploadStarted="AssemblyFileUpload_Started" 
                                  />

var upload = $$('ajaxUploadImage');
        upload.enableSelection('false');

var upload = $$('ajaxUploadImage');
        upload.enableSelection('false');
upload.disableSelection();

document.getElementById("ctl00_MainContent_MapUserControl_ajaxUploadImage").disabled = true;

所以......我尝试使用我分配的ID ..如果尝试使用浏览器中指定的ID ...我做错了什么?用户仍然可以单击文本框或选择按钮,弹出图片文件夹,允许用户选择要上传的图像

应该注意,iv也尝试从后面的代码中禁用它

ajaxUploadImage.Enabled = false;

还试过设置disabled =&#34; true&#34;在控件内部,并检查开发人员工具中的控件是否被禁用,但我仍然可以单击文本框或按钮并打开图片文件夹

2 个答案:

答案 0 :(得分:2)

控件发出自己的标记,很难管理。

您可以尝试设置Visible=false,因为每次加载页面并且控件可见时,它的逻辑运行。

答案 1 :(得分:0)

我一直在把注意力放在禁用部分,看来我们可以肯定地禁用AsyncFileUpload控件。

诀窍是,ajax工具包会将ID重新分配给其控件,因此,无论您的ID是什么,即使您使用<%= control.ClientID %>这种方法来获取ID,也会将新ID重新分配给它控件的名称。

因此,我建议您检查浏览器中的元素,然后从那里复制元素ID。

我的场景:

这是我在标记中的控件:

<asp:AsyncFileUpload CssClass="custom-file-input" ID="fileupload" runat="server" OnUploadedFileError="fileupload_UploadedFileError" OnUploadedComplete="fileupload_UploadedComplete" />

注意,我的控件的ID为fileupload。这就是我之前禁用它的方式:

$('#<%= fileupload.ClientID %>').attr('disabled', true);

显然这是行不通的,因为$('#<%= fileupload.ClientID %>')向我返回了#fileupload的ID,这是不正确的,因为最初,ajaxtoolkit已将其从#fileupload修改为#fileupload_ctl02,所以,我必须将ID硬编码到我的JavaScript中才能正常工作。例如:

$('#fileupload_ctl02').attr('disabled', true); // I am using an older version of jQuery,

对于较新版本的jQuery,您可以改用prop()方法禁用它。

JS

document.getElementById('fileupload_ctl02').disabled = true;

希望它对某人有帮助。