公司有一个winform项目。
最近改版winform项目的时候,遇到问题。
我在form1上有一个datagridview控件。这个控件的绑定数据的方法已经写好了
然后通过一个按钮的点击事件,打开一个新窗体form2。通过一个按钮获取form2上面datagridview中选中项的ID,并保存在form1的属性中
public List<string> listSelect = null;
关闭form2的时候,通过创建form1的对象调用form1的绑定方法。
调试的时候,确实调用了form1的绑定方法,并且数据源也有数据,
就是datagridview不显示数据。不知道为什么
以前一直做web开发。这个公司web和winform都做,本人是一个web项目和一个winform项目同事做,没时间考虑太多,纠结纠结
那你调试的时候datagridview数据源里面有没有数据啊
当然有数据,呵呵,小弟怎么也做了一年程序员了。没数据的话,还是很轻松搞定的
@cxl_小猪: 通过form1窗体的事件新建form2,然后获取一个id,传回form1 ,请问是这样么?
第一步:datagridview1.DataSource = lst;lst是一个List<集合>。
第二步:界面控件绑定到字段。
呵呵。 public void loadfromFavorites(int pageIndex)
{
Bll.Book bllBook = new Bll.Book();
Bll.Standard bllStandard = new Bll.Standard();
Model.Book modelBook = null;
Model.Standard modelStand = null;
btn_SelectAll.ButtonText = "全选";
PagerHelper ph = null;
DataTable dt = null;
if (listSelect.Count > 0)
{
string bId = "";
for (int i = 0; i < listSelect.Count; i++)
{
bId += "'" + listSelect[i] + "',";
}
bId = bId.Substring(0, bId.Length - 1);
ph = new PagerHelper(true, "bId", "bId", "v_Favorites", 5, pageIndex, "*", " 1=1 and bId in("+bId+") ");
}
if (ph != null)
{
dt = ph.GetFastPageSql();
}
if (dt.Rows.Count > 0)
{
for (int i = 0; i < dt.Rows.Count; i++)
{
if (dt.Rows[i]["inttype"].ToString() == "1")//图书
{
modelBook = bllBook.GetModel(dt.Rows[i]["bId"].ToString());
if (modelBook != null)
{
dt.Rows[i]["bCode"] = modelBook.bCode;
dt.Rows[i]["Pullishers"] = modelBook.Pullishers;
dt.Rows[i]["stringtype"] = "标准";
}
}
if (dt.Rows[i]["inttype"].ToString() == "0")//标准
{
modelStand = bllStandard.GetModel(dt.Rows[i]["bId"].ToString());
if (modelStand != null)
{
dt.Rows[i]["bCode"] = modelStand.sCode;
dt.Rows[i]["Pullishers"] = modelStand.Pullishers;
dt.Rows[i]["stringtype"] = "图书";
}
}
}
}
gvOrderManageList.DataSource = dt;
pageEx1.RecordCount = ph.allCount;
if (pageIndex == 1)
{
pageEx1.PageIndex = 1;
}
pageEx1.BindData();
}
这个是我form1的绑定方法。我的list里面只是存放一个ID而已。
@cxl_小猪: 界面也要绑定到字段。
@荒野的呼唤: 肯定不是绑定到字段的问题。
@荒野的呼唤: datagridview的数据源用datatable。没一个字段对应一列。我没工作的时候就会弄
@cxl_小猪:
this.dgvStudent.DataSource = this.CreateDataSet();
//必须是创建的DataTable的名字
this.dgvStudent.DataMember = "Students";
@荒野的呼唤:麻烦好好看看我贴出来的代码。
dt = ph.GetFastPageSql();//项目中一个方法赋值给dt
gvOrderManageList.DataSource = dt;//form1上面的datagridview
@cxl_小猪: gvOrderManageList.DataSource = dt;//form1上面的datagridview
后面加上
//必须是创建的DataTable的名字。把“Student”替换成你的DataTable名字。
this.gvOrderManageList.DataMember = "Students";
@荒野的呼唤: 还有绝对不是绑定的问题。datagridview绑定数据的问题我做过N回了。
现在最可能的问题是没有刷新form1窗体。
@cxl_小猪: 那你就刷新啊。
你说的是这吗?
Frm1 f = new Frm1();
if (f.ShowDialog() == DialogResult.OK)
{
RefrushData();
}
@荒野的呼唤: 当然不是这个了。唉,谢谢,还是我自己弄吧。