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 回答