更新时间:2023-01-25 10:15:57
您需要 编写逻辑 用于验证日期 喜欢.
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 firegridviewrowdatabound
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 }