Текст TextBox не меняется из обработчика событий upload_complete
У меня есть следующий код в обработчике события завершения загрузки AsyncFileUpload:
Protected Sub AsyncFileUpload1_UploadedComplete(ByVal sender As Object, ByVal e As AjaxControlToolkit.AsyncFileUploadEventArgs) Handles AsyncFileUpload1.UploadedComplete
Dim oapp As Excel.Application
Dim oWBa As Excel.Workbook
Dim oWS As Excel.Worksheet
Dim oRng As Excel.Range
oapp = New Excel.Application
AsyncFileUpload1.PostedFile.SaveAs(Server.MapPath("tempfile2.xlsx"))
oWBa = oapp.Workbooks.Open(Server.MapPath("tempfile2.xlsx"))
oWS = DirectCast(oWBa.Worksheets(2),
Excel.Worksheet)
'Here tns is a textbox contained in a panel
tns.Text = Integer.Parse(oWS.Range("W44").Value) + Integer.Parse(oWS.Range("W55").Value)
oWBa.Close()
File.Delete(Server.MapPath("tempfile2.xlsx"))
End Sub
Свойство autopostback tns включено, так почему оно не меняет свой текст при загрузке файла? Также не возникает вопроса ошибки в логике чтения файла excel, потому что я отлаживал его с помощью VS 2010 и Uptil в строке tns.text..., я получаю правильное значение в часах. Так как мне его обойти?
1 ответ
Решение
Заменить настройку tns.Text
недвижимость в AsyncFileUpload1_UploadedComplete
с кодом ниже:
var resultString = Integer.Parse(oWS.Range("W44").Value) + Integer.Parse(oWS.Range("W55").Value);
ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "result", "top.$get(\"" + tns.ClientID + "\").value = '" + resultString + "';", true);
PS этот обходной путь и многое другое вы можете найти в образце сайта AjaxControlToolkit, доступном для загрузки с codeplex