如何在数据网格视图中获取当前单元格的上下单元格值 [英] how to get upper and lower cell value of current cell in data grid view

查看:87
本文介绍了如何在数据网格视图中获取当前单元格的上下单元格值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个包含两列的数据网格视图.
例如

日期日期
2005年1月1日,星期一
2005年7月1日,星期一
2005年1月14日,星期一
2005年1月21日,星期一
2005年1月28日,星期一
2005年5月2日,星期一
2005年12月2日,星期一
2005年2月19日,星期一
2005年2月26日,星期一

我想以一种可以验证日期的方式验证用户,他可以更改日期(let 7/1/2005)但不小于或等于1/1/2005(上部单元格)且不大于或等于14/1/2005(下部单元格)
请朋友,如果您有任何想法请帮助我.
有人可以帮助我如何获取当前单元格的上下单元格值吗?

在高级感谢
lakhan

解决方案


您需要 编写逻辑 用于验证日期 喜欢.


void dataGridView1_CellValidating(object sender, DataGridViewCellValidatingEventArgs e)
{
DateTime StartDate = dataGridView1.Rows[0].Cells["Date"];
DateTime EndDate = dataGridView1.Rows[dataGridView1.Rows.Count-1].Cells["Date"]
DateTime enetedDate = dataGridView1.Rows[e.RowIndex].Cells["Date"];
 
if( enetedDate >=  StartDate &&  enetedDate<= EndDate)
{
//Your logic should be here..
} 
else
{
 MessageBox.Show("Invalid Date!");
  e.Cancel = true;
}
}



注意:

Please use DataType conversion before use. because i haven''t implemented it.


是.你可以做到的.
您需要获得 Gridview1_cellLeave 事件的帮助,并在其下编写代码.
例如

 gridview1_CellLeave()
{
 // 收集datetime对象中的所有单元格值进行比较
 DataTime dtUpperCell = e.gridview1.Rows [RowIndex- 1 ].Text;
 DataTime dtLowerCell = e.gridview1.Rows [RowIndex +  1 ].Text;
 DataTime dtCurrentCell = e.gridview1.Rows [RowIndex +  1 ].Text;

  如果(dtUpperCell >  dtCurrentCell& dtLowerCell < ;  dtCurrentCell)// 检查条件
  {
     MessageBox.Show(" ); // 显示消息
  }
} 


首先,您必须触发gridviewrowdatabound事件及其内部.

标签日期=(标签)e.Row.FindControl(" );
 DateTime r = Convert.ToDateTime(date.Text)
DateTime r1 = Convert.ToDateTime(" );
DateTime r1 = Convert.ToDateTime(" );
                如果(DateTime.Compare(r,r2)><  =  0 )
                {
                    不能' 不能更改
                }
                别的
                {
                    你可以改变
                }
               如果(DateTime.Compare(r,r2)> = 0)
                {
                    不能更改
                }
                其他
                {
                    你可以改变
                } 


i have a data grid view which contain two columns.
e.g.

date day
1/1/2005 Monday
7/1/2005 Monday
14/1/2005 Monday
21/1/2005 Monday
28/1/2005 Monday
5/2/2005 Monday
12/2/2005 Monday
19/2/2005 Monday
26/2/2005 Monday

i want to validate user in such way that he can change date(let 7/1/2005 )but not less or = than 1/1/2005 (upper cell) and not more than or =14/1/2005 (lowercell)
please friend if u have any idea please help me.
can anybody help me how to get upper and lower cell value of current cell ?

thanks in advanced
lakhan

解决方案

Hi,

You need to write a logic for validating Date like.


void dataGridView1_CellValidating(object sender, DataGridViewCellValidatingEventArgs e)
{
DateTime StartDate = dataGridView1.Rows[0].Cells["Date"];
DateTime EndDate = dataGridView1.Rows[dataGridView1.Rows.Count-1].Cells["Date"]
DateTime enetedDate = dataGridView1.Rows[e.RowIndex].Cells["Date"];
 
if( enetedDate >=  StartDate &&  enetedDate<= EndDate)
{
//Your logic should be here..
} 
else
{
 MessageBox.Show("Invalid Date!");
  e.Cancel = true;
}
}



Note:

Please use DataType conversion before use. because i haven''t implemented it.


Yes. you can do it.
you need to take help of Gridview1_cellLeave event and write code under it.
e.g.

gridview1_CellLeave()
{
 // collect all cell values in datetime object to compare
 DataTime dtUpperCell = e.gridview1.Rows[RowIndex - 1].Text;
 DataTime dtLowerCell = e.gridview1.Rows[RowIndex + 1].Text;
 DataTime dtCurrentCell = e.gridview1.Rows[RowIndex + 1].Text;

  if(dtUpperCell > dtCurrentCell && dtLowerCell < dtCurrentCell) //check condition
  {
     MessageBox.Show("Not allowed"); //show message
  }
}


1st u have to fire gridviewrowdatabound event and inside that.

Label date= (Label)e.Row.FindControl("Date");
 DateTime r =    Convert.ToDateTime(date.Text)            
DateTime r1=Convert.ToDateTime("1/1/2005");
DateTime r1=Convert.ToDateTime("14/1/2005");
                if (DateTime.Compare(r, r2) <= 0)
                {
                    can't change
                }
                else
                {
                    you can change
                }
               if (DateTime.Compare(r, r2) >= 0)
                {
                    can't change
                }
                else
                {
                    you can change
                }


这篇关于如何在数据网格视图中获取当前单元格的上下单元格值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆