日期:2014-05-19  浏览次数:20913 次

问一下,winform大家用何种方式显示数据
比如:datagridview   的列是可以自己新增的,我们可以手工设置好各种属性。如宽度等,再绑定数据,呈现给用户
但是直接绑定也是可以自动生成列的。
请问用什么方式教好,如果是第二种,是不是还要手工去改属性来满足不同的界面需求???

------解决方案--------------------
代码里绑定

datagridview1.datasource = datatable1

当datatable1发生变化后,
重新指定数据源

datagridview1.datasource = datatablenew

手工操作,比如添加列或者添加行,都在datatablenew里完成
个人意见,仅供参考
------解决方案--------------------
应该需要手动配置吧?因为你不知道其他界面该怎么显示,或者能不能显示下
------解决方案--------------------
手工操作比较方便
------解决方案--------------------
手动设置。
如果是DataTable,通过配置文件设置。如果是自定义实体列表,通过自定义特性和反射设置。
------解决方案--------------------
datagridview1.datasource = datatablenew
------解决方案--------------------
private void frmRule_Load(object sender, EventArgs e)
{
this.FillData();
this.dataGridView1.DataSource = bindMaster;
this.dataGridView2.DataSource = bindDetail;
this.SetDataBind();
this.setReadOnlyOnOff(true);
}

private void FillData()
{
string sql = "select * from sysrulegroup ";
this.dtMaster.Clear();
this.dtMaster = dataAccess.ExecuteSql(sql);
this.bindMaster.DataSource = this.dtMaster;
}

private void SetDataBind()
{
this.dataGridView1.Columns[ "ID_RULEGROUP "].Visible = false;
this.dataGridView1.Columns[ "no_RULEGROUP "].HeaderText = "角色群编号 ";
this.dataGridView1.Columns[ "nm_RULEGROUP "].HeaderText = "名称 ";
}

==============代码控制
------解决方案--------------------
LS这么写太烦了,完全可以封装一个公共方法去实现,传进去两个串不就得了,一个串说明是哪些列,一个串说明名标题,根据列的内容自适应列宽,也可以在列标头前面加特殊的符号说明是锁定列还是排序列之类的
如:
this.BindGrid(dt, "id,name,add,tel ", "#工号,$姓名,&住址,电话 ")

___________________________________________________________

专业路过,友情UP
------解决方案--------------------
友情UP^^^^^

------解决方案--------------------
LISTVIEW绑定不知道你试过没!
------解决方案--------------------
快晕死,做大项目你还考虑这样的东西,一般的项目开始,系统整体架构应该出来了,一些公共的方法,Form,UC的基类都应该已经做好,项目成员所要关注的是如何处理复杂的业务.类似UI处理,数据访问,IO处理应该都已封装完毕.而且要书面告知成员如何复用
------解决方案--------------------
DataPropertyName,HeaderText,Width,...都保存在数据库里的
------解决方案--------------------
本人通常是用第两种方法显示数据,全用代码控制显示格式。
继续观查中
------解决方案--------------------
TO kellynt() ,你是在大公司,所以你不用考虑,这也是你在大公司学不到东西的缘故了。
如果你想成为一个项目经理或分析人员,你必须考虑。不然你永远只是个代码民工。
继续交流

======================================================
虽然说的狠了点,但是是实话.
哪有不考虑的,那不是只要懂业务技术只要懂一点就可以了?
大公司的员工多,但是民工也多...
------解决方案--------------------
To sunzhong2003:

帅哥,你可能没有理解我的意思,我是说大项目当中类似数据绑定是选择 "手工设置 "还是代码实现之类的问题你不应该考虑,进行适当的封装复用是你唯一的选择.