1

ユーザーがドロップダウンリストから選択した数に応じて、可変数のFileUploadフィールドを持つページを作成しようとしています。

私の.apsxコードは次のとおりです。

            <tr>

            <td>Number of photo's to upload</td>
            <td><asp:DropDownList ID="DLPhotoCount" runat="server" OnSelectedIndexChanged="OnSelectedIndexChanged_PhotoCount" AutoPostBack="true">

                <asp:ListItem Text="..."></asp:ListItem>
                <asp:ListItem Text="1"></asp:ListItem>
                <asp:ListItem Text="2"></asp:ListItem>

            </asp:DropDownList></td>

        </tr>

        <tr>

            <td>Picture 1:</td>
            <td><asp:FileUpload runat="server" ID="Pic1" Visible="false"/></td>
        </tr>

       <tr>

            <td>Picture 2:</td>
            <td><asp:FileUpload runat="server" ID="Pic2" Visible="false"/></td>
        </tr>

        <tr>

            <td><asp:Button runat="server" ID="BtnUploadFiles" text="Upload Files" OnClick="OnClick_BtnUploadFiles" Visible="false"/></td>

        </tr>

私のC#は;

    protected void OnSelectedIndexChanged_PhotoCount(object sender, EventArgs e)
{
    string Pic = "Pic";
    int PicNo = Convert.ToInt32(DLPhotoCount.SelectedItem.Text);

    if (DLPhotoCount.SelectedItem.Text != "...")
    {
        string StPicNo = Pic + PicNo;

        do
        {                
            FileUpload StPicNo.Visible = true;
            PicNo = PicNo + 1;

        }
        while (PicNo < Convert.ToInt32(DLPhotoCount.SelectedItem.Text + 1));

        BtnUploadFiles.Visible = true;

    }
    else
    {
        Pic1.Visible = false;
        Pic2.Visible = false;
        BtnUploadFiles.Visible = false;
    }
}

これが必要な機能を実現するための最良の方法ではない場合は、代替案に関する提案を受け入れてください

4

1 に答える 1

0

ドロップダウンリストから選択した値に基づいてファイルアップロードコントロールを動的に作成することをお勧めします。

javascriptを使用してファイルアップロードコントロールを追加するサンプル例は、以下のリンクから入手できます。

http://www.aspsnippets.com/Articles/Uploading-Multiple-Files-using-JavaScript-Dynamic-FileUpload-Controls-in-ASP.Net.aspx

http://www.codeproject.com/Articles/24914/Multiple-Dynamic-File-Uploading

これの利点は、ファイルの背後にあるコードで条件チェックを行う必要がなく、将来的にファイルアップロードコントロールを追加する必要がある場合にコードを変更する必要がないことです。

于 2012-11-07T23:33:50.483 に答える