本文介绍了WinForm DevExpress Xtragrid以编程方式检查网格视图中的指定复选框列的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

说明:



我有一个网格视图,其中包含RepositoryItemCheckEdit列和RepositoryItemTextEdit列,网格视图包含列项,如项目ID,条形码,包ID等



1)RepositoryItemCheckEdit



相同项目ID和条形码可以在网格视图中显示多个具有不同包ID的项目。



我需要的是,如果用户在网格视图中选中任何一个项目id的复选框,则意味着我需要检查或取消选中所有相关的复选框行。用户可以选择第一个复选框或最后一个复选框,然后根据用户选择需要选中或取消选中相关的复选框。



2)RepositoryItemTextEdit



与复选框相同复选框列编辑,文本编辑列编辑需要工作,例如如果用户在项目ID列中输入100单元格值意味着相应的项目ID行也应该被指定为100如下



void repchkCheckbox_CellValueChanged(object sender,DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs e)

{

DataTable dt_check = new DataTable();

dt_check =(DataTable)gcItemMaster.DataSource;

Int64 sItemId = Convert.ToInt64(gvItemMaster.GetRowCellValue(gvItemMaster.FocusedRowHandle) ,gvItemMaster.Columns [ItemID]));

bool bDiscount = Convert.ToBoolean(e.Value);

int iItemcount =(fr om dt_check.Rows中的DataRow行其中(string)row [ItemID] ==1选择行).Count();

int iRowHandle = gvItemMaster.FocusedRowHandle;

for(int i = 0;我< iItemcount; i ++)

{

if(bDiscount)

gvItemMaster.SetRowCellValue(iRowHandle,gvItemMaster.Columns [AllowDiscount],true);

else

gvItemMaster.SetRowCellValue(iRowHandle,gvItemMaster.Columns [AllowDiscount],false);



iRowHandle ++;

}

}

说明性目的:如果我在gridview中包含5行,具有相同的itemid但不同的packid ...如果我检查itemId的第一行复选框意味着我可以轻松地通过递增行句值来填充剩余的复选框,如第2,第3,第4,第5但是我的问题是,如果我想检查3行gridview Itemid复选框意味着我只能填充第4行和第5行复选框状态..但第1行和第2行保持不变...

Explanation:

I have an grid view which contains RepositoryItemCheckEdit column's and RepositoryItemTextEdit column's,grid view contains column's like Item Id, Bar code,Pack Id etc

1)RepositoryItemCheckEdit

Same Item Id and bar code can come multiple items in grid view with different pack id.

What I need is, if user selects any one item id's check box in grid view means i need all associated check box row's to be checked or unchecked viceversa. User may select either first check box or last check box then associated check box need to be checked or unchecked viceversa based upon user selection

2)RepositoryItemTextEdit

Same as like check box Column Edit,Text edit Column Edit need to be worked such as if user enters 100 in item id column cell value means then corresponding Item id row's should also be assigned as 100 as follows

void repchkCheckbox_CellValueChanged(object sender, DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs e)
{
DataTable dt_check = new DataTable();
dt_check = (DataTable)gcItemMaster.DataSource;
Int64 sItemId = Convert.ToInt64(gvItemMaster.GetRowCellValue(gvItemMaster.FocusedRowHandle, gvItemMaster.Columns["ItemID"]));
bool bDiscount = Convert.ToBoolean(e.Value);
int iItemcount = (from DataRow row in dt_check.Rows where (string)row["ItemID"] == "1" select row).Count();
int iRowHandle = gvItemMaster.FocusedRowHandle;
for (int i = 0; i < iItemcount; i++)
{
if (bDiscount)
gvItemMaster.SetRowCellValue(iRowHandle, gvItemMaster.Columns["AllowDiscount"], true);
else
gvItemMaster.SetRowCellValue(iRowHandle, gvItemMaster.Columns["AllowDiscount"], false);

iRowHandle++;
}
}
Illustrative Purpose : if i contains 5 rows in gridview with same itemid but different packid... if i check very first row checkbox of itemId means i can easily able to populate remaining checkbox like 2nd,3rd,4th,5th through increamenting rowhandle value But My Question is if suppose i check 3 row of gridview Itemid checkbox means i can able to populate only 4th and 5th row of checkbox state..but 1st and 2nd row remains the same...

推荐答案


这篇关于WinForm DevExpress Xtragrid以编程方式检查网格视图中的指定复选框列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-15 21:46