#c# #asp.net
#c# #asp.net
Вопрос:
Есть ли какой-либо способ отобразить метку, которая показывает «загрузка ..» во время обработки моего нажатия кнопки?
Я делаю это таким образом
protected void btnUpload_Click(object sender, EventArgs e)
{
lblOutput.Text="uploading..";
HttpPostedFile postedFile = FileUpload1.PostedFile;
string ClientFileName, ServerFileName;
if ((FileUpload1.HasFile amp;amp; FileUpload1.PostedFile != null) || txtUrl.Text!="")
{
try
{
HttpPostedFile myFile = FileUpload1.PostedFile;
if (fileType == "Image")
{
if (fileExt == ".jpg" || fileExt == ".gif" || fileExt == ".png" ||
fileExt == ".bmp" || fileExt == ".tif")
{
ServerFileName = System.IO.Path.Combine(ServerSavePathI, ClientFileName);
string serverPath = Server.MapPath(ServerFileName);
FileUpload1.SaveAs(serverPath);
dbInsert(fileType, fileName, fileExt,
filePath fileType "/" fileName.Replace(" ",string.Empty) fileExt,
url);
}
}
}
}
}
Но это появилось после того, как мой файл уже был загружен.
Я делаю что-то неправильно, или есть какой-либо другой способ сделать это?
Комментарии:
1. Ага……. Форматирование кода???
2. lblOutput.visible = false? просто предполагаю, что я не прочитал все это целиком, потому что это похоже на изложенное выше (трудно читать)
3. Нет, невозможно с вашей текущей логикой. Ваш лучший вариант — использовать AJAX вместо обратной передачи, тогда такая вещь становится довольно тривиальной.
4. нет, его свойство visible не равно false.
5. @Heena в отличие от классического ASP, в ASP.NET вывод отправляется в браузер только после того, как сервер закончит обработку всего, так что это сплошная стена.
Ответ №1:
<script type="text/javascript">
function showMessage() {
document.getElementById("<%= lblOutput.ClientID %>").innerHTML = "uploading..";
}
</script>
<asp:FileUpload runat="server" ID="FileUpload1" />
<asp:Button runat="server" ID="btnUpload" Text="Upload" OnClick="btnUpload_Click" OnClientClick="showMessage()" />
<asp:Label runat="server" ID="lblOutput" />
Комментарии:
1. замените innerText на innerHTML
Ответ №2:
Приоритет отображения текста метки ниже, чем у потока загрузки.Вы можете решить эту проблему, используя другой поток для обработки события изменения текста.Надеюсь, это поможет.