asp.net如何刷新gridview

Wah*_*ver 0 asp.net gridview

我试图在插入后刷新网格视图,但它不适合我,这是我的代码:

<asp:TextBox ID="TimeBox" runat="server" />
                <asp:TextBox ID="CommentBox" runat="server" TextMode="MultiLine" />
                    <asp:Button ID="insButton" runat="server" OnClick="insert" Text="Insert" />
<asp:GridView ID="MainGrid" runat="server">
</asp:GridView>
Run Code Online (Sandbox Code Playgroud)

这是背后的代码:

    protected void Page_Load(object sender, EventArgs e)
{
    // filling the grid view

    SqlConnection conn = new SqlConnection (@"connectionString");
    SqlCommand cmd = new SqlCommand("SELECT tim,com FROM ten",conn);
    conn.Open();

    DataSet ds = new DataSet();
    SqlDataAdapter da = new SqlDataAdapter(cmd);
    da.Fill(ds);

    MainGrid.DataSource = ds;
    MainGrid.DataBind();  
}

protected void insert(object sender, EventArgs e) //adding the comments 
{
    SqlConnection conn = new SqlConnection(@"connectionString");
    SqlCommand cmd = new SqlCommand("INSERT INTO tennis (tim,com) VALUES (@tim,@com)", conn);
    cmd.Parameters.AddWithValue("@tim", TimBox.Text);
    cmd.Parameters.AddWithValue("@com", ComBox.Text);

    conn.Open();
    cmd.ExecuteNonQuery();
    MainGrid.DataBind();
    conn.Close();
}
Run Code Online (Sandbox Code Playgroud)

插入工作正常,如果我刷新页面,我可以看到数据,但我只是刷新网格视图而不刷新页面.

mcc*_*002 5

现在您已插入记录,您需要使用该新数据重新绑定数据网格.我建议稍微重新调整你的代码,这样你就不会违反DRY原则(不要重复自己)并将数据调用解压缩到它自己的方法中.

protected void Page_Load(object sender, EventArgs e)
{
    if(!IsPostBack)
    {
        MainGrid.DataSource = GetData();
        MainGrid.DataBind();  
    }
}

protected void insert(object sender, EventArgs e) //adding the comments 
{
    SqlConnection conn = new SqlConnection(@"connectionString");
    SqlCommand cmd = new SqlCommand("INSERT INTO tennis (tim,com) VALUES (@tim,@com)", conn);
    cmd.Parameters.AddWithValue("@tim", TimBox.Text);
    cmd.Parameters.AddWithValue("@com", ComBox.Text);

    conn.Open();
    cmd.ExecuteNonQuery();
    conn.Close();

    MainGrid.DataSource = GetData();
    MainGrid.DataBind();
}

protected DataSet GetData()
{
    SqlConnection conn = new SqlConnection (@"connectionString");
    SqlCommand cmd = new SqlCommand("SELECT tim,com FROM ten",conn);
    conn.Open();

    DataSet ds = new DataSet();
    SqlDataAdapter da = new SqlDataAdapter(cmd);
    da.Fill(ds);

    return ds;
}
Run Code Online (Sandbox Code Playgroud)