在postBack之后将文件名保留在FileUpload控件中

时间:2011-10-12 08:15:05

标签: asp.net file-upload

我遇到了FileUpload控件的问题。我有这个,两个下拉列表,文本框和按钮。如果我在第一个dropDownList中选择“是”第二个变为禁用并且设置值为NO(在第二个ddl中我有两个选项YES或NO并且在第一个中也是如此)但是如果我在第一个dropDownList中选择NO我可以选择两个选项在第二个dropDownList中。第一个ddl使用selectedIndexChanged evet在postBack上更改第二个,当它发生时我在上面设置的UploadFile控件中松开了文件名。

代码示例:

<asp:FileUpload ID="fuUploadGeometry" runat="server" Width="100%" />
<asp:DropDownListID="ddlSymmetry"runat="server" AutoPostBack="true"
      onselectedindexchanged="ddlSymmetry_SelectedIndexChanged">
                    <asp:ListItem Value="0">-- Select --</asp:ListItem>
                    <asp:ListItem Value="true">Yes</asp:ListItem>
                    <asp:ListItem Value="false">No</asp:ListItem>
</asp:DropDownList>
<asp:DropDownList ID="ddlModule" runat="server" Enabled="True">
                    <asp:ListItem Text="-- Select --" Value="0"/>
                    <asp:ListItem Text="Yes" Value="1"  />
                    <asp:ListItem Text="No" Value="2"/>
                </asp:DropDownList>
<asp:TextBox ID="txtTopic" runat="server"></asp:TextBox>

在下拉列表中更改选定选项期间,如何在UploadFile控件中保留文件名?

2 个答案:

答案 0 :(得分:0)

试试这个,我添加了标签,这样你就可以看到onselectedindexchange的回发只影响下拉列表而不影响文件上传控件,希望这会有所帮助。

        <asp:FileUpload ID="fuUploadGeometry" runat="server" Width="100%" />

      <asp:UpdatePanel ID="UpdatePanel1" runat="server">
          <ContentTemplate>
        <asp:DropDownList ID="ddlSymmetry" runat="server" AutoPostBack="true" OnSelectedIndexChanged="ddlSymmetry_SelectedIndexChanged">
            <asp:ListItem Value="0">-- Select --</asp:ListItem>
            <asp:ListItem Value="true">Yes</asp:ListItem>
            <asp:ListItem Value="false">No</asp:ListItem>
        </asp:DropDownList>
        <asp:DropDownList ID="ddlModule" runat="server" Enabled="True">
            <asp:ListItem Text="-- Select --" Value="0" />
            <asp:ListItem Text="Yes" Value="1" />
            <asp:ListItem Text="No" Value="2" />
        </asp:DropDownList>
        <asp:TextBox ID="txtTopic" runat="server"></asp:TextBox>
              <asp:Label runat="server" ID="msgFromList" />
              </ContentTemplate>
          </asp:UpdatePanel>

<asp:FileUpload ID="fuUploadGeometry" runat="server" Width="100%" /> <asp:UpdatePanel ID="UpdatePanel1" runat="server"> <ContentTemplate> <asp:DropDownList ID="ddlSymmetry" runat="server" AutoPostBack="true" OnSelectedIndexChanged="ddlSymmetry_SelectedIndexChanged"> <asp:ListItem Value="0">-- Select --</asp:ListItem> <asp:ListItem Value="true">Yes</asp:ListItem> <asp:ListItem Value="false">No</asp:ListItem> </asp:DropDownList> <asp:DropDownList ID="ddlModule" runat="server" Enabled="True"> <asp:ListItem Text="-- Select --" Value="0" /> <asp:ListItem Text="Yes" Value="1" /> <asp:ListItem Text="No" Value="2" /> </asp:DropDownList> <asp:TextBox ID="txtTopic" runat="server"></asp:TextBox> <asp:Label runat="server" ID="msgFromList" /> </ContentTemplate> </asp:UpdatePanel>

答案 1 :(得分:0)

首先要注意的是,如果在您的网页上发生任何回发事件,FileUpload Control将变为空。因此,最好的解决方案是在所有可能导致回发的控件之后放置文件上传控件,如下拉列表。