一个FileUpload1,一个CheckBox1,当选中CheckBox1时TextBox 的内容和FileUpload1的文件名相同
问题:当选中CheckBox1时FileUpload1的内容就空了,请问如何做到FileUpload1不刷前台
<asp:TextBox ID="TBRuleName" runat="server"></asp:TextBox>
<asp:FileUpload ID="FileUpload1" runat="server" /> &nbsp;<asp:CheckBox 
                                    ID="CheckBox1" runat="server" oncheckedchanged="CheckBox1_CheckedChanged" 
                                    Text="名称和文件名相同" AutoPostBack="True" />后
protected void CheckBox1_CheckedChanged(object sender, EventArgs e)
        {
            if (FileUpload1.HasFile)
                {
                    TBRuleName.Text =  System.IO.Path.GetFileNameWithoutExtension(FileUpload1.FileName);
          
                   }
        }

解决方案 »

  1.   

    因为你的 CheckBox1设定了 AutoPostBack="True" ,选中之后会马上提交到后台的
    将这个属性去掉就可以了
      

  2.   

    然后考虑在前台用Javascript给TBRuleName赋值。
    如果是提交到后台FileUpload1的内容肯定会为空的
      

  3.   

    AutoPostBack="False",在js中判断。
      

  4.   

    就是因为你的CheckBox状态更改时有刷新页面,而FileUpload控件中的值没有保存在ViewState中。
    你可以把FileUpload中的值存在ViewState中。
      

  5.   

    请问如何把FileUpload中的值存在ViewState中?
      

  6.   

    ViewState["f_name"]=FileUpload.FileName