1

asp.net Web アプリケーションに telerik RadUpload を実装しています。対応するハンドラーとモジュールのエントリを web.config に追加しました。

<add path="Telerik.RadUploadProgressHandler.ashx"
   type="Telerik.Web.UI.RadUploadProgressHandler" verb="*" validate="false" />
<add name="RadUploadModule"
   type="Telerik.Web.UI.RadUploadHttpModule" />

Excelファイルをアップロードする必要があり、アップロード中に100%完了するまで進行状況バーを表示する必要がある機能があります。

問題: アップロードされたファイルのパーセンテージをキャプチャしてプログレス エリアに表示する方法を考えています。

マイコード (Button_Click):

    Const total As Integer = 100

        Dim progress As RadProgressContext = RadProgressContext.Current
        progress.Speed = "N/A"
        Dim files As UploadedFileCollection = RadUpload1.UploadedFiles
        Dim up As RadUpload = RadUpload1
        If files IsNot Nothing AndAlso 0 <> files.Count Then
            For i As Integer = 0 To total - 1
             progress("SecondaryTotal") = total.ToString()
                progress("SecondaryValue") = i.ToString()
                progress("SecondaryPercent") = i.ToString()
                progress("CurrentOperationText") = files(0).GetName() & " is being processed..."

            If Not Response.IsClientConnected Then
                      Exit For
            End If
            progress.TimeEstimated = (total - i) * 100

            ---------ACTUAL UPLOAD FUNCTIONALITY HERE----------
             objUpload.CreateBulkUploadRequest(bytes)

           Next
        End If

Private Sub CreateBulkUploadRequest(bytes)

     StoreDocumentinImageServer(bytes)

End Sub

 Public Function StoreDocumentinImageServer(ByVal PostData As Byte()) As Integer

        Try

            Dim req As HttpWebRequest
            Dim resp As HttpWebResponse
            Dim postStream As Stream
            Dim respStream As StreamReader
            Dim Url As String
            Dim response As String = String.Empty
            Dim ImageId As Integer = 0
            Dim qryString As New StringBuilder("?fileSize=")
            qryString.Append(PostData.Length)
            qryString.Append("&userId=" + RequestedBy.ToString)
            qryString.Append("&applicationName=" + RequestType.ToString)
            qryString.Append("&imageName=" + FileName)
            qryString.Append("&mode=Insert")
            Url = ImageServiceUrl + qryString.ToString
            req = CType(WebRequest.Create(Url), HttpWebRequest)
            req.Method = "POST"
            req.ContentType = contenttype
            req.KeepAlive = True
            req.ContentLength = PostData.Length
            postStream = req.GetRequestStream()
            postStream.Write(PostData, 0, PostData.Length)
            resp = CType(req.GetResponse(), HttpWebResponse)
            respStream = New StreamReader(resp.GetResponseStream(), Encoding.Default)
            response = respStream.ReadToEnd()
            respStream.Close()
            resp.Close()

        Catch ex As Exception
            Throw ex
        End Try
    End Function

問題----CreateBulkUploadRequest()メソッドが同期になり、アップロードに10分かかり、最終的にメソッドの実行から抜け出します。ここで、進行状況領域とファイル アップロード ステータスのパーセンテージを更新する方法を教えてください。

私の最大の問題は、CreateBulkUploadRequest() がプログレス バー更新コードのループにあることです。そのため、進行状況領域を更新しようとしている回数だけ呼び出します。

私は正しいことをしていますか????????

質問が明確でない場合はお知らせください。

提案をお待ちしております。

4

2 に答える 2

0

RadUpload とプログレス エリアを使用してアップロードされた % を確認するだけの場合は、コード ビハインドに追加のコードは必要ありません。このデモに記載されているコード (マークアップ)で十分です。

ただし、提供されたコードで行っているように見えるカスタムの進行状況の監視が必要な場合は、これについて少し異なる方法で行う必要があります。このデモでは、カスタム進行状況モニタリングを実装する方法について説明します。実装したコードがそのデモのサンプルと一致することを再確認します。

于 2012-01-11T20:35:10.040 に答える
0

進捗情報の表示を自分で処理する必要はありません。自動的に行われます。このサンプルコードを見てください。

于 2012-01-10T15:49:07.470 に答える