2017-04-12 8 views
0

ファイルを受け取り、1つのWebページ上のサーバー上の場所に保存することができる単純なFileUploadボックスがありますが、現在作業しているページには、RadPageView内部のフォームビュー、RadMultiPageViewの内部にフォームビューがあります。 FileUploadコントロールにファイルがあるかどうかを確認しようとすると、毎回NULL値が満たされていますが、ファイルにロード中です。ここで私のコードのいくつかの抜粋を少し整えます。問題の一部は、私がオンラインで見つけたすべてのチュートリアルで、ユーザーがボタンクリックイベントのVBにこの情報の一部を入力していることです。ここではxyz Handles .Updatingセクションに入力します。私のFileUploadがファイルを表示しない理由は何ですか?

私が実行するプロンプラムは、FileUpload1.HasFileにアクセスするとファイルをアップロードしても表示されないということです。実際、FileUploadコントロールに正しく接続していないかのように、Nullを表示します。私はFileUploadコントロールに接続するためのさまざまな方法を使いこなしましたが、実際には機能していませんでした。

<telerik:RadMultiPage ID="RadMultiPage1" runat="server" SelectedIndex="0" CssClass="multiPage" 
     BorderColor="Black" BorderStyle="Solid"> 
     <telerik:RadPageView ID="pvMemoDoc" runat="server"> 
      <asp:FormView ID="fvMemoDoc" runat="server" DefaultMode="Edit" DataSourceID="dsMemos" 
       DataKeyNames="coreDocID"> 
       <EditItemTemplate> 
        <table class="tblNoSpace"> 
         [...Other Code...] 
         <%--Begin file upload section--%> 
         <tr> 

          <td class="fieldLabel">File to upload:<br /> 
          </td> 
          <td> 
           <asp:FileUpload ID="FileUpload1" runat="server" Width="600" ToolTip="Browse for file" /> 
          </td> 
         </tr> 
         <tr> 
          <td colspan="2" style="text-align: right"> 
           <asp:Label ID="lblFU1" runat="server" Enabled="false" Visible="false" 
            Text="(only select new file if you wish to replace existing file)"></asp:Label> 
          </td> 
         </tr> 
         <tr> 
          <td> 
           <br /> 
           <br /> 
           <asp:Button ID="btnUpdateMemo" CommandName="Update" runat="server" Text="Update Memo" 
            CausesValidation="true" ValidationGroup="MemoInformation" 
            ToolTip="Save updates" />&nbsp; 
          </td> 
         </tr> 
        </table> 
       </EditItemTemplate> 
      </asp:FormView> 
     </telerik:RadPageView> 

     [...Other Code...] 

    </telerik:RadMultiPage> 

VBコード:

Private Sub DsMemo_Updating(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.SqlDataSourceCommandEventArgs) Handles dsMemos.Updating 
    Dim FileUpload1 As FileUpload = CType(fvMemoDoc.FindControl("FileUpload1"), FileUpload) 
    'Dim FileUpload1 As FileUpload = CType(fvMemoDoc.Controls(0).Controls(0).FindControl("FileUpload1"), FileUpload) 
    'Dim FileUpload1 As FileUpload = CType(fvMemoDoc.Controls(0).FindControl("FileUpload1"), FileUpload) 
    'Dim FileUpload1 As FileUpload = TryCast(updateButton.Parent.Parent.FindControl("FileUpload1"), FileUpload) 

    If FileUpload1.HasFile Then 
     [...Other Code Here..] 
     [...Never gets past FileUpload1.HasFile...] 
    End If 
End Sub 
+0

UpdatePanelまたはAjaxを使用していますか?どのようにDsMemo_Updatingメソッドをトリガーしますか? – Win

+0

[更新]ボタンをクリックすると、フォームの残りのデータはSQLデータソースにバインドされたデータになります。これには、SQL Server上でストアドプロシージャを使用してアクセスするように設定された更新コマンドがあります。ファイルのアップロード情報をVBにプルして、ファイルをアップロードしたかどうかによって異なるイベントをトリガできるようにしました。 – Jolley71717

+0

'' telerik:AjaxUpdatedControl''が使われているようです – Jolley71717

答えて

0

それはいくつかの読み取り/書き込み権限に対する変更に問題があったことをいじり後に表示されます。 コントロールの仕組みは、一時ファイルを保存してからサーバーから削除することで、ファイルが表示されないのです。

一時ファイルが保存されているフォルダへのアクセスを変更すると、問題が解決しました。

関連する問題