简体   繁体   English

更新后显示的Gridview

[英]Gridview to display after updating

I'm using bulk update to update my gridview. 我正在使用批量更新来更新我的gridview。

The user is first prompted to select dates and then click a button to display the gridview data for those dates. 首先提示用户选择日期,然后单击按钮以显示这些日期的gridview数据。 Update the relevant cells and then click on save. 更新相关单元格,然后单击保存。

The thing is my Gridview disappears after it gets updated. 问题是我的Gridview在更新后消失了。 I want the Gridview to remain displaying the updated data. 我希望Gridview保持显示更新的数据。 How do I do that? 我怎么做?

Code Snippets: 代码段:

 string connStr = ConfigurationManager.ConnectionStrings["bbsConnectionString"].ConnectionString;
        using (SqlConnection Con = new SqlConnection(connStr))
        {

            SqlDataAdapter sdr = new SqlDataAdapter(str, Con);

            sdr.SelectCommand.Parameters.AddWithValue("@startdate", startdate);
            sdr.SelectCommand.Parameters.AddWithValue("@enddate", enddate);
            DataTable dt = new DataTable();
            sdr.Fill(dt);
            if (dt.Rows.Count > 0)
            {
                GridView1.DataSource = dt;
                GridView1.DataBind();
                Button2.Visible = true;
            }



        }

    protected void Button2_Click(object sender, EventArgs e)
    {
        foreach (GridViewRow row in GridView1.Rows)
        {



            TextBox dtm = row.FindControl("DtmTextBox") as TextBox;


            string connStr = ConfigurationManager.ConnectionStrings["bbsConnectionString"].ConnectionString;
            using (SqlConnection Con = new SqlConnection(connStr))
            {
                Con.Open();
                SqlCommand cmd = new SqlCommand("Update tblAvailable set intqty=@intQty, curprice=@curprice where intresortid=@intresortid and dtm=@dtm and strroomtype=@strroomtype", Con);



                // cmd.Parameters.AddWithValue("@dtm", DateTime.ParseExact(dtm.Text.Trim(), "dd/M/yyyy", System.Globalization.CultureInfo.InvariantCulture));

                cmd.ExecuteNonQuery();
                GridView1.EditIndex = -1;
                GridView1.DataBind();
                GridView1.Visible = true;




            }

You have to assign datatable/DataSet to data source before bind method is called 您必须在调用bind方法之前将datatable / DataSet分配给数据源

 GridView1.DataSource = dt;
 GridView1.DataBind();

Here you are binding grid after update but not assigning DataTable to GridView1.DataSource. 在这里,您将在更新后绑定网格,但不会将DataTable分配给GridView1.DataSource。 You can call the DataGrid method here instead of binding like this. 您可以在此处调用DataGrid方法,而不是像这样进行绑定。

private void FillGrid()
{
string connStr = ConfigurationManager.ConnectionStrings["bbsConnectionString"].ConnectionString;
        using (SqlConnection Con = new SqlConnection(connStr))
        {

            SqlDataAdapter sdr = new SqlDataAdapter(str, Con);

            sdr.SelectCommand.Parameters.AddWithValue("@startdate", startdate);
            sdr.SelectCommand.Parameters.AddWithValue("@enddate", enddate);
            DataTable dt = new DataTable();
            sdr.Fill(dt);
            if (dt.Rows.Count > 0)
            {
                GridView1.DataSource = dt;
                GridView1.DataBind();
                Button2.Visible = true;
            }
        }
}
 //You should as call the method FillGrid that loads data and bind grid previously      

            cmd.ExecuteNonQuery();
            GridView1.EditIndex = -1;
            //GridView1.DataBind();
            FillGrid();
            GridView1.Visible = true;

Remove these statement and call method which bind the grid previously 删除这些先前绑定网格的语句和调用方法

I have Already used below code . 我已经使用下面的代码。 I will work .you should call again that Method in which you are displaying Grid view by date 我将工作。您应该再次调用按日期显示网格视图的那个方法

public void DisplyGridview(){

string connStr = ConfigurationManager.ConnectionStrings["bbsConnectionString"].ConnectionString;
    using (SqlConnection Con = new SqlConnection(connStr))
    {

        SqlDataAdapter sdr = new SqlDataAdapter(str, Con);

        sdr.SelectCommand.Parameters.AddWithValue("@startdate", startdate);
        sdr.SelectCommand.Parameters.AddWithValue("@enddate", enddate);
        DataTable dt = new DataTable();
        sdr.Fill(dt);
        if (dt.Rows.Count > 0)
        {
            GridView1.DataSource = dt;
            GridView1.DataBind();
            Button2.Visible = true;
          }



    }

} protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e) { }受保护的void GridView1_RowUpdating(对象发送者,GridViewUpdateEventArgs e){

    foreach (GridViewRow row in GridView1.Rows)
    {



        TextBox dtm = row.FindControl("DtmTextBox") as TextBox;


        string connStr = ConfigurationManager.ConnectionStrings["bbsConnectionString"].ConnectionString;
        using (SqlConnection Con = new SqlConnection(connStr))
        {
            Con.Open();
            SqlCommand cmd = new SqlCommand("Update tblAvailable set intqty=@intQty, curprice=@curprice where intresortid=@intresortid and dtm=@dtm and strroomtype=@strroomtype", Con);



            // cmd.Parameters.AddWithValue("@dtm", DateTime.ParseExact(dtm.Text.Trim(), "dd/M/yyyy", System.Globalization.CultureInfo.InvariantCulture));

            cmd.ExecuteNonQuery();
            GridView1.EditIndex = -1;
            GridView1.DataBind();
            GridView1.Visible = true;




        }

DisplyGridview();

} }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM