asp.net在gridview中回发

时间:2012-01-04 05:36:20

标签: asp.net

在我的asp.net应用程序中,我有一个gridview控件,其中我添加了一个带有fileupload控件的模板列。 在页面的gridview外面,我有一个执行某项任务的按钮控件。 我的问题是,当我单击按钮时,我通过gridview中的文件上传控件选择的文件已刷新,文件路径消失。 当我单击按钮时,如何停止刷新gridiew。 按钮不在网格内。

protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            DataTable dt = new DataTable();

            DataColumn dc1 = new DataColumn("id", typeof(string));
            dt.Columns.Add(dc1);
            dr = dt.NewRow();
            dr[0] = "abcd";
            dt.Rows.Add(dr);
            DataSet ds = new DataSet();
            ds.Tables.Add(dt);
            GridView1.DataSource = ds;
            GridView1.DataBind();
        }
    }

2 个答案:

答案 0 :(得分:0)

文件上传控件永远不会在回发之间保持其值。 您可以在GridView中维护一个Label字段,该字段保存通过FileUpload控件上传的文件的路径。单击GridView外部的按钮时,将值从FileUpload控件复制到lable。

答案 1 :(得分:0)

文件上传控件不是为了在poskback上维护文件路径..但​​你可以有一个解决方法..尝试在会话变量中存储文件路径..我知道它有点笨拙但似乎是唯一的方法来做到这一点..你还可以做的另一件事就是创建一个UserControl,为你管理这个......

//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["FileUpload1"] == null && FileUpload1.HasFile)
{
Session["FileUpload1"] = FileUpload1;
Label1.Text = FileUpload1.FileName;
}
// Next time submit and Session has values but FileUpload is Blank
        // Return the values from session to FileUpload
        else if (Session["FileUpload1"] != null && (! FileUpload1.HasFile))
{
FileUpload1 = (FileUpload) Session["FileUpload1"];
Label1.Text = FileUpload1.FileName;
}
// 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 (FileUpload1.HasFile)
{
Session["FileUpload1"] = FileUpload1;
Label1.Text = FileUpload1.FileName;
}

了解更多信息

http://www.codeproject.com/Tips/101834/How-to-Maintain-FileUpload-Control-s-State-after-P.aspx

此致