2012-08-23 39 views
0

改变我对AsyncFileUpload的上传完成事件处理程序下面的代码:文本框的文本不会从upload_complete事件处理

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 

TNS的AutoPostBack属性被打开,为什么它不会改变它的文本文件时上传?另外,在阅读excel文件的逻辑中也没有错误,因为我使用VS 2010和Uptil tns.text进行了调试,我在手表中获得了正确的值。所以我该如何绕过它?

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); 

P.S.:

+0

Integer.Parse(oWS.Range(“W44”)。Value)+ Integer.Parse(oWS.Range(“W55” ).Value)总是返回一个值? –

+0

@WaqarJanjua我不会为“总是”而烦恼。在我的情况下,它返回了正确的值。我在VS调试器手表中发现它。 – rahulserver

+0

然后在您的其他页面上将其设置为空或空白。在你的网页上搜索tns.Text,可能你已经将它设置为tns.Text =“”或者null –

回答

0

AsyncFileUpload1_UploadedComplete与下面的代码替换tns.Text属性的设定这个解决方法和很多其他的你可以在AjaxControlToolkit示例站点找到可以从codeplex下载的