【问题标题】:ASP.Net Gridview not rebind data on button clickASP.Net Gridview 在按钮单击时不重新绑定数据
【发布时间】:2014-06-17 14:10:54
【问题描述】:

我是 asp.net 的新手,我在按钮单击事件上使用带有 asp.net 的 LINQ 我的 gridview 没有重新绑定数据,是的,gridview 已进入更新面板

'> '>

protected void btnSave_Click(object sender, EventArgs e)
{
    foreach (GridViewRow gvr in gvClientData.Rows)
    {

        if (((CheckBox)gvr.FindControl("chkdisplay")).Checked == true)
        {
            string Index = ((Label)gvr.FindControl("lblIndex")).Text;
            int GIIndex = Convert.ToInt32(Index);
            GI_InsureMaster insertclientinfo = vjdb.GI_InsureMasters.Single(upd => upd.GIMastIndex == GIIndex);
            insertclientinfo.SendToCompany = true;
            vjdb.SubmitChanges();
        }

    }
    BindAgencyData();
    Response.Redirect(Request.RawUrl);
}

【问题讨论】:

  • 您在代码中留下了更重要的方法BindAgencyData
  • “重新绑定数据”是什么意思?如果您在保存方法中缺少数据,请记住,您必须在 page_load 中重新绑定您的 gridview。

标签: c# asp.net sql-server linq


【解决方案1】:

您似乎正在尝试修改一个对象,然后将其保存回数据库,但您做错了。

您正在从不同的数据上下文 vjdb 查询对象,并且您正在对 linqobject 调用 SubmitChanges。你应该打电话给SubmitChangesvjdb

protected void btnSave_Click(object sender, EventArgs e)
{
    foreach (GridViewRow gvr in gvClientData.Rows)
    {

        if (((CheckBox)gvr.FindControl("chkdisplay")).Checked == true)
        {
            string Index = ((Label)gvr.FindControl("lblIndex")).Text;
            int GIIndex = Convert.ToInt32(Index);
            GI_InsureMaster insertclientinfo = vjdb.GI_InsureMasters.Single(upd => upd.GIMastIndex == GIIndex);
            insertclientinfo.SendToCompany = true;
            vjdb.SubmitChanges(); //HERE
        }

    }
    BindAgencyData();
    Response.Redirect(Request.RawUrl);
}

假设BindAgencyData 正在查询数据库以获取最新/更新的记录,然后将数据绑定到网格。

【讨论】:

    猜你喜欢
    • 2015-05-26
    • 1970-01-01
    • 1970-01-01
    • 2012-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-06
    • 1970-01-01
    相关资源
    最近更新 更多