有一个按钮(MyButton)。单击此按钮会出现一个 modalpopup(MyPopup),其中包含一个 asyncfileupload ajax 控件、Ok 按钮和 Cancel 按钮。
asyncfileupload 功能的浏览功能工作正常,没问题。但是在回发之后,如果我再次单击 MyButton,则会在 asyncfileupload 控件的文本框中显示带有先前路径的弹出窗口。
如何清除它...!
提前致谢。
有一个按钮(MyButton)。单击此按钮会出现一个 modalpopup(MyPopup),其中包含一个 asyncfileupload ajax 控件、Ok 按钮和 Cancel 按钮。
asyncfileupload 功能的浏览功能工作正常,没问题。但是在回发之后,如果我再次单击 MyButton,则会在 asyncfileupload 控件的文本框中显示带有先前路径的弹出窗口。
如何清除它...!
提前致谢。
None of the proposed ways worked for me.
The problem is not specific to AsyncFileUpload
, but to the input[type=file].
Finally, I found a way that worked for me with javascript:
function uploadComplete(sender, args) {
jQuery(sender.get_element()).find("input[type='file']")[0].form.reset();
}
将 AsyncFileUpload 描述符的属性设置为 OnClientUploadComplete="UploadComplete" 并使用下一个 JS:
function UploadComplete(sender, arg2) {
// clear file
var fileInputElement = sender.get_inputFile();
fileInputElement.value = "";
}
您也可以将任何操作/样式应用于“fileInputElement”。
要扩展上面的 ador 答案:
function uploadComplete(sender, args) {
var uploadField = $(sender.get_element()).find("input[type='file']");
uploadField[0].form.reset();
uploadField.each(function () { $(this).css("background-color", "white"); });
}
假设您使用的是 Ajax Control Toolkit 中的控件,您可以挂接到 OnClientUploadedComplete 句柄,一旦上传完成,该句柄就会在客户端调用。您想在模式弹出窗口上调用 hide
var modalPopupBehavior = $find('popupID');
modalPopupBehavior.hide();
这肯定会清除文本框:
var AsyncFileUpload = $get("<%=AsyncFileUpload1.ClientID%>");
var txts = AsyncFileUpload.getElementsByTagName("input");
for (var i = 0; i < txts.length; i++) {
if (txts[i].type == "file") {
txts[i].style.backgroundColor = "transparent";
txts[i].form.reset();
}
}
如果您尝试清除客户端,这对我有用。
<script type = "text/javascript">
function clearContents() {
var AsyncFileUpload = $get("<%=AsyncFileUpload1.ClientID%>");
var txts = AsyncFileUpload.getElementsByTagName("input");
for (var i = 0; i < txts.length; i++) {
if (txts[i].type == "file") {
txts[i].value = "";
txts[i].style.backgroundColor = "transparent";
}
}
}
function uploadComplete(sender) {
clearContents();
}
</script>
这是对 Jmoon 答案的更正。如果您不想在上传完成后而是在其他用户操作后清除 AsyncFileUpload 文本,这很有用。
function clearContents() {
var AsyncFileUpload = $("#<%=AsyncFileUpload1.ClientID%>")[0];
var txts = AsyncFileUpload.getElementsByTagName("input");
for (var i = 0; i < txts.length; i++) {
txts[i].value = "";
txts[i].style.backgroundColor = "transparent";
}
}