2016-08-02 89 views
0

我目前正在执行实习生管理的项目。每个实习生都有项目。另外每个项目都有步骤/要点。如果实习生完成了一个步骤,项目会增加其进度。所以基本上,每个项目都有一个进展。操作3层体系结构中的datagridview列

我正在使用自定义的DataGridViewProgressColumn。将此列添加到我的datagridview后,我可以将其值设置为某个值来更改它的值。

//Last index of datagridview is progresscolumn. 
dataGridView1.Rows[i].Cells[dataGridView1.ColumnCount - 1].Value = value; 

这个值来自数据库,据我所知,我不应该从UI层访问数据库。但datagridview在UI层。

我有2个解决方案,在我的脑海:

  1. 设定在数据访问层progresscolumn的每个值:我不认为这是可能的,虽然我认为这是最好的解决办法:我只是不能改变的值不放置progressColumn。

  2. 在UI层设置每一个progresscolumn的值,可能是“正在工作但违反架构”的解决方案。

我该如何解决这个问题?谢谢。

+0

我的数据库是ms-sql,如果它很重要。 –

+0

进度值应该是模型的一个属性,您应该将'DataGridView'绑定到'Model'列表。您的Service Layer中的方法应该返回'Model'列表。 –

回答

0

无论如何,我只是使用了一个返回int值的DAL函数。该函数计算该值并将其返回。

dataGridView1.Rows[i].Cells[dataGridView1.ColumnCount - 1].Value = DAL.getValue(rowID);