我尝试了许多东西(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;在控件内部,并检查开发人员工具中的控件是否被禁用,但我仍然可以单击文本框或按钮并打开图片文件夹
答案 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;
希望它对某人有帮助。