0

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

tnsのautopostbackプロパティがオンになっているのに、ファイルがアップロードされたときにテキストが変更されないのはなぜですか?また、VS 2010を使用してデバッグし、tns.text ...の行までExcelファイルを読み取るため、Excelファイルの読み取りロジックにエラーの問題はありません。時計で正しい値を取得します。では、どのように回避すればよいでしょうか。

4

1 に答える 1

0

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この回避策と、codeplexからダウンロードできるAjaxControlToolkitサンプルサイトにある他の多くの回避策

于 2012-08-25T11:50:30.287 に答える