1

ファイルを FileLoad に「手動で」設定することに問題があります。

だからここに私の状況があります:

私はこのマニュアルを使用しています: http://www.codeproject.com/Tips/101834/How-to-Maintain-FileUpload-Control-s-State-after-P?msg=4176652#xx4176652xx

PostBack on page の後にロードされたファイルを覚えておく必要があります。だから私は PostBack を行う FileLoad オブジェクトと Button を持っています。ポストバック後、Session["MenuFile"] = FileLoad; を設定すると、セッション レコードが作成されますが、このファイルを FileLoad オブジェクトに戻そうとすると、実際にそこに到達します (LoadFile オブジェクトでファイルを確認できます)。しかし、ページ上では空です。FileLoad オブジェクトの Load、Init イベントでも設定しようとしましたが、何も機能しません。

FileLoad がセッションからファイルを正常にロードし、デフォルト設定 (空白) に「リセット」したようなものです。

そして、私のコードは次のとおりです。

     <tr>
        <td>
            <asp:Label runat="server" Text="Menu:"></asp:Label></td>
        <td>
            <asp:FileUpload runat="server" ID="fuMenu"/>
            <asp:RequiredFieldValidator runat="server" ID="rfvMenu" ControlToValidate="fuMenu" ErrorMessage="Menu file is required" ForeColor="Red">*</asp:RequiredFieldValidator>
        </td>
    </tr>
    <tr>
        <td>
            <asp:Button runat="server" ID="neco" />
            <asp:ValidationSummary runat="server"/>
        </td>
    </tr>

コードビハインド:

protected void Page_Load(object sender, EventArgs e)
    {

        // If first time page is submitted and we have file in FileUpload control but not in session 
        // Store the values to Session Object 
        if (Session["MenuFile"] == null && fuMenu.HasFile)
        {
            Session["MenuFile"] = fuMenu;

        }
        // Next time submit and Session has values but FileUpload is Blank 
        // Return the values from session to FileUpload 
        else if (Session["MenuFile"] != null && (!fuMenu.HasFile))
        {
            fuMenu = (FileUpload)Session["MenuFile"];

        }
        // Now there could be another sictution when Session has File but user want to change the file 
        // In this case we have to change the file in session object 
        else if (fuMenu.HasFile)
        {
            Session["MenuFile"] = fuMenu;
        }
    }

セッションで作業する必要があるため、次のようなものは使用できません: ボタンのクリックでPostBack 情報が消えた後、FileUpload コントロールの状態を維持する方法

私は本当に必死で、どんな種類の助けにも大いに感謝します. ありがとう !

4

1 に答える 1