2017-04-12 87 views
0

我有一個簡單的FileUpload框,可以接受文件並將它們保存到一個網頁上的服務器上的位置,但我正在處理的頁面在RadPageView內部有一個窗體視圖,在RadMultiPageView 。當我嘗試查看FileUpload控件中是否有文件時,每次都會遇到空值,儘管我正在加載文件。以下是我的代碼片段,稍微修剪一下。部分問題是,在我在網上找到的所有教程中,用戶都在vb中輸入了一些關於按鈕點擊事件的信息,我在其中輸入xyz Handles .Updating部分。任何想法爲什麼我的FileUpload顯示沒有文件?

我遇到的問題是,當我到達FileUpload1.HasFile時,它顯示沒有文件,即使我已經上傳文件。實際上,它顯示Null,就好像我沒有正確連接到FileUpload控件。我混淆了不同的方式來連接到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服務器上的存儲過程。我想將文件上傳信息放入VB中,以便根據用戶是否上傳文件來觸發不同的事件。 – Jolley71717

+0

似乎使用'telerik:AjaxUpdatedControl' – Jolley71717

回答

0

看來一些修修補補,有與修改與讀/寫權限的問題之後。 控制工作的方式是它將存儲一個臨時文件,然後將其從服務器上刪除,這就是爲什麼沒有文件顯示。

給Web應用程序修改存儲臨時文件的文件夾的訪問權限解決了我的問題。

相關問題