首页 新闻 搜索 专区 学院

winform问题………………………………求助,真的求助……

0
悬赏园豆:50 [已关闭问题] 关闭于 2012-05-29 16:38

公司有一个winform项目。

最近改版winform项目的时候,遇到问题。

我在form1上有一个datagridview控件。这个控件的绑定数据的方法已经写好了

然后通过一个按钮的点击事件,打开一个新窗体form2。通过一个按钮获取form2上面datagridview中选中项的ID,并保存在form1的属性中       

public List<string> listSelect = null;

关闭form2的时候,通过创建form1的对象调用form1的绑定方法。

调试的时候,确实调用了form1的绑定方法,并且数据源也有数据,

就是datagridview不显示数据。不知道为什么
以前一直做web开发。这个公司web和winform都做,本人是一个web项目和一个winform项目同事做,没时间考虑太多,纠结纠结

cxlCoding的主页 cxlCoding | 初学一级 | 园豆:106
提问于:2012-05-29 16:13
< >
分享
所有回答(2)
0

那你调试的时候datagridview数据源里面有没有数据啊

┢┦偉 | 园豆:1240 (小虾三级) | 2012-05-29 16:14

当然有数据,呵呵,小弟怎么也做了一年程序员了。没数据的话,还是很轻松搞定的

支持(0) 反对(0) cxlCoding | 园豆:106 (初学一级) | 2012-05-29 16:17

@cxl_小猪: 通过form1窗体的事件新建form2,然后获取一个id,传回form1 ,请问是这样么?

支持(0) 反对(0) ┢┦偉 | 园豆:1240 (小虾三级) | 2012-05-29 16:40
0

第一步:datagridview1.DataSource = lst;lst是一个List<集合>。

第二步:界面控件绑定到字段。

悟行 | 园豆:12422 (专家六级) | 2012-05-29 16:20

呵呵。        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();
        }

支持(0) 反对(0) cxlCoding | 园豆:106 (初学一级) | 2012-05-29 16:23

这个是我form1的绑定方法。我的list里面只是存放一个ID而已。

支持(0) 反对(0) cxlCoding | 园豆:106 (初学一级) | 2012-05-29 16:25

@cxl_小猪: 界面也要绑定到字段。

支持(0) 反对(0) 悟行 | 园豆:12422 (专家六级) | 2012-05-29 16:25

@荒野的呼唤: 肯定不是绑定到字段的问题。

支持(0) 反对(0) cxlCoding | 园豆:106 (初学一级) | 2012-05-29 16:27

@荒野的呼唤: datagridview的数据源用datatable。没一个字段对应一列。我没工作的时候就会弄

支持(0) 反对(0) cxlCoding | 园豆:106 (初学一级) | 2012-05-29 16:28

@cxl_小猪: 

       this.dgvStudent.DataSource = this.CreateDataSet();
          //必须是创建的DataTable的名字
            this.dgvStudent.DataMember = "Students";

支持(0) 反对(0) 悟行 | 园豆:12422 (专家六级) | 2012-05-29 16:31

@荒野的呼唤:麻烦好好看看我贴出来的代码。

dt = ph.GetFastPageSql();//项目中一个方法赋值给dt

gvOrderManageList.DataSource = dt;//form1上面的datagridview

支持(0) 反对(0) cxlCoding | 园豆:106 (初学一级) | 2012-05-29 16:35

@cxl_小猪: gvOrderManageList.DataSource = dt;//form1上面的datagridview

后面加上 

//必须是创建的DataTable的名字。把“Student”替换成你的DataTable名字。
this.gvOrderManageList.DataMember = "Students";

支持(0) 反对(0) 悟行 | 园豆:12422 (专家六级) | 2012-05-29 16:37

@荒野的呼唤: 还有绝对不是绑定的问题。datagridview绑定数据的问题我做过N回了。

现在最可能的问题是没有刷新form1窗体。

支持(0) 反对(0) cxlCoding | 园豆:106 (初学一级) | 2012-05-29 16:37

@cxl_小猪: 那你就刷新啊。

你说的是这吗?

Frm1 f = new Frm1();
if (f.ShowDialog() == DialogResult.OK)
{
RefrushData();
}

支持(0) 反对(0) 悟行 | 园豆:12422 (专家六级) | 2012-05-29 16:41

@荒野的呼唤: 当然不是这个了。唉,谢谢,还是我自己弄吧。

支持(0) 反对(0) cxlCoding | 园豆:106 (初学一级) | 2012-05-29 16:45
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册