asp.net如何刷新gridview
我正在尝试在插入后刷新网格视图,但它对我无效,以下是我的代码:asp.net如何刷新gridview,asp.net,gridview,Asp.net,Gridview,我正在尝试在插入后刷新网格视图,但它对我无效,以下是我的代码: <asp:TextBox ID="TimeBox" runat="server" /> <asp:TextBox ID="CommentBox" runat="server" TextMode="MultiLine" /> <asp:Button ID="insButton" runat="server" OnClick="inse
<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>
插入工作正常,如果我刷新页面,我可以看到数据,但我尝试只刷新网格视图而不刷新页面。插入新记录后,您必须重新查询数据库,并使用包含新记录的数据源重新绑定网格(与您在页面加载中所做的相同),插入的记录。插入新记录后,必须重新查询数据库,并使用包含新插入记录的数据源重新绑定网格(与加载页面中的操作相同)。由于网格渲染后正在处理插入按钮的事件,因此无法看到预期结果 看 因此,在显示数据后,数据将被添加到表中,以及为什么使用F5
相反,将页面加载的内容移动到
PreRender
事件中,一切都应该正常您没有看到预期的结果,因为在网格渲染后正在处理插入按钮的事件
看
因此,在显示数据后,数据将被添加到表中,以及为什么使用F5
相反,将页面加载的内容移动到
PreRender
事件中,一切都应该正常插入记录后,需要使用新数据重新绑定数据网格。我建议对代码进行一点重新核心化,这样就不会违反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;
}
既然已经插入了记录,就需要使用新数据重新绑定数据网格。我建议对代码进行一点重新核心化,这样就不会违反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;
}
如果我按“插入”按钮,您不是运行GetData两次吗!?好了,我修好了。答案还值得否决吗?+1您还为GridView绑定编写了一个函数BindGrid。如果我按insert按钮,您不是在运行GetData两次吗!?好了,我修好了。答案还值得否决吗?+1您还为GridView绑定编写了一个函数BindGrid。