关於GridEx的操作.docx
- 文档编号:7449592
- 上传时间:2023-01-24
- 格式:DOCX
- 页数:11
- 大小:20.50KB
关於GridEx的操作.docx
《关於GridEx的操作.docx》由会员分享,可在线阅读,更多相关《关於GridEx的操作.docx(11页珍藏版)》请在冰豆网上搜索。
关於GridEx的操作
關於GridEx的操作
(一)1.關於GridEx的一些設置。
想在網上找關於GridEx的介紹文檔,都沒有找到有價值的東西。
只能自己慢慢摸索。
現在把自己的一些方法帖出來,供大家一起探討。
(我用VS2008C#+MySql開發。
假設表products(productKey,Productname,ProductID..)
添加一個資料集命名為productDataSet,添加一個數據表名為products(productKey,productName,ProductID..)這樣方便綁定。
(1)GridexControl設置:
datasource=productDataSet;Datamember=products;//設置要綁定的數據源
GroupByBox:
False,是否顯示分組box
自定的樣式:
VisUalStyle=office2007;Office2007ColorScheme=Custom;Office2007CustomColor=顔色(如:
blue);
AlllowEdit:
是否應許編輯。
AllowColumnDrag:
運行時是否可以拖拉COlumn.
RowHeaders:
是否顯示表格行頭;
RecordNavigator:
是否有紀錄導航(相當于分頁).
View:
設置顯示的樣子tableView,CardView,SimpleCard;
SaveSetting:
是否保存設置,true可以保存樣式,但是,你在GridExCell中輸入的東西保存時不能提交;false:
gridEx.DataUpdate可以更新
(2)RootTable的Column屬性設置:
<以DataTime類型為例>
Column的名稱;headerAlign:
行頭的排列方式;TextAlign:
COlumn內容的排列方式
Trimming:
內容超出是否省略;WordWarp:
是否自動換行,要設置maxLines才可以;如MaxLines=50,則超出50自動換行;
FormatString:
如yyyy-MM-dd,時間顯示樣式為2009-10-10;
editType:
textbox,combo,checkbox..如果edittype=noedit;則運行時候不可以編輯;即使AllowEdit=true;
如果設置為DrawDownList,在
設置數據類型,Key:
字段名;
<資料>boundMode:
設置綁定模式bound;unbound,unBoundFetch;datamember:
設置綁定的字段
gridEx功能很強大,對於ColumnSet,childTable,drawdowns的設置還不很清楚。
。
希望大家一起探討;
第一次寫東西,可能表述的不好,請諒解。
1.綁定數據;
仍然以prodcutDataSet的products表為例.
新建grdEXProduct;按照
(一)設置GridEx樣式;
grdEXProduct.DataSource=productDataset;Datamenber=products;
sqlString="Select*fromproducts";
DBHelper.ExecuteDataSet(SqlString,dataSetSuppliers1,"products");//DBHelper是我自己參考網上的例子寫的一個數據操作類;
//支持MsSql,MYSql,OleDb,odbc,Oracle等;
2.新增:
datarowrow=productDataset.products.Rows.newrow();
row["ProductKey"]="-1";
row["ProductID"]="sss";
productDataset.products.Rows.addRow(row);
3:
刪除:
datarowrow=productDataset.products.Rows[Gridex1.getRow().rowindex];
productDataset.products.Rows.remove(row)
4.保存數據
grdEXProduct.UpdateData();//很重要;否則,你輸入的東西不能保存)
foreach(DataRowrowinproductDataset.products.Rows)
{
if(row.RowState==DataRowState.Modified)
{
SqlString="Updateproductssetproducts.supplygoodsKey="+row["supplygoodsKey"].ToString()
+",products.SupplierKey="+row["SupplierKey"].ToString()
+",price="+row["price"].ToString()
+"Whereproducts.ProductKey="+row["ProductKey"].ToString();
}//修改更新
else
{
SqlString="Insertintoproducts(supplygoodsKey,supplierKey,price)values("
+row["supplygoodsKey"].ToString()+","+row["SupplierKey"].ToString()
+","+row["price"].ToString()+");";
}//新增
DBHelper.ExecuteNonQuery(SqlString);
}
5.獲得運行時的dropwodn數據 publicenummyFlag{EditFlag=1,SaveFlag=2,AddFlag=3,DelFlag=4}//狀態標致
privateintii=0;
privatevoidgrdEXProduct_DropDown(objectsender,Janus.Windows.GridEX.ColumnActionEventArgse)
{
if(grdEXProduct.GetRow()!
=null)
{
if(mflag!
=myFlag.SaveFlag)
{
DataRowrow=dataSetOutStore1.OutStoreSubItem.Rows[grdEXProduct.GetRow().RowIndex];
DataSetds=newDataSet();
SqlString="selectdistinctsuppliers.SupplierNamefromsuppliers"
+"innerjoinsupplyGoodsonsupplygoods.SupplierKey=suppliers.SupplierKey"
+"innerjoinoutstoresubitemonoutstoresubitem.ProductKey=supplyGoods.ProductKey"
+"whereoutstoresubitem.ProductKey="+row["productKey"].ToString()+";";
ds=DBHelper.ExecuteDataSet(SqlString,"suppliers");
intii=0;
Janus.Windows.GridEX.GridEXValueListItemCollectionitem=new
Janus.Windows.GridEX.GridEXValueListItemCollection();//設定ValueListItemCollection
foreach(DataRowroinds.Tables["Suppliers"].Rows)
{
item.Add(ii,ro["SupplierName"].ToString());
ii++;
}
grdEXProduct.RootTable.Columns["SupplierName"].EditValueList=item;//editvaluelist的值,不是valuelist噢
}
}
}
privatevoidgrdEXProduct_CellValueChanged(objectsender,Janus.Windows.GridEX.ColumnActionEventArgse)
{
if(e.Column.EditValueList!
=null)
{
intii=0;
grdEXProduct.UpdateData();
DataRowrow=dataSetOutStore1.OutStoreSubItem.Rows[grdEXProduct.GetRow().RowIndex];
ii=Convert.ToInt32(row["SupplierName"]);//row["SupplierName"]是editValuelist的值,你更新數據後,
//girdex的cell顯示的是editValuelist的序號
DataSetds=newDataSet();
SqlString="selectdistinctsupplyGoods.supplyGoodsKeyfromsupplyGoods"
+"innerjoinsuppliersONsuppliers.SupplierKey=supplyGoods.SupplierKey"
+"innerjoinproductsonproducts.ProductKey=supplyGoods.ProductKey"
+"wheresupplyGoods.ProductKey="+row["productKey"].ToString()
+"andsuppliers.supplierName='"+e.Column.EditValueList[ii].Text+"';";
ds=DBHelper.ExecuteDataSet(SqlString,"supplyGoods");
if(ds.Tables["supplyGoods"].Rows.Count>0)
{
DataRowrr=ds.Tables["supplyGoods"].Rows[0];
row["supplyGoodsKey"]=rr["supplyGoodsKey"];
row["SupplierName"]=e.Column.EditValueList[ii].Text;
}
}
}
6.動態設定gridex的樣式
foreach(DataRowrowinproductDataset.products.Rows)
{
if(row["flag"].ToString()==true.ToString()||row["flag"].ToString()=="1")
{
grdEXProduct.GetRow(row).RowStyle=newJanus.Windows.GridEX.GridEXFormatStyle();
grdEXProduct.GetRow(row).RowStyle.ForeColor=Color.Red;
grdEXProduct.GetRow(row).RowStyle.FontStrikeout=Janus.Windows.GridEX.TriState.True;
}
}
1)打印,拖入一個gridEXPrintDocument1控件
設置它的gridex屬性:
gridex=GridExProduct;PageHeaderCenter= "物料明細表";
privatevoidbtnPrint_Click(objectsender,EventArgse)
{
FrmPrint frm=newFrmPrint(this);//frmprint,顯示打印的窗口,有個printPreviewControl1就可以了
frm.printPreviewControl1.Document=gridEXPrintDocument1;
frm.WindowState=FormWindowState.Maximized;
frm.ShowDialog();
}
//要打印,只要在FrmPrint裏調用ofrm.gridEXPrintDocument1.Print();//ofrm:
btnPrint_Click所在的頁面
2.輸出到execl拖入一個gridEXExporter1控件
privatevoidbtnExecl_Click(objectsender,EventArgse)
{
stringsaveFileName="";
// boolfileSaved=false;
SaveFileDialogsaveDialog=newSaveFileDialog();
saveDialog.DefaultExt="xls";
saveDialog.Filter="Excel文件|*.xls";
saveDialog.FileName="Sheet1";
saveDialog.ShowDialog();
saveFileName=saveDialog.FileName;
if(saveFileName.IndexOf(":
")<0)return;
gridEXExporter1.SheetName=gridEXPrintDocument1.PageHeaderCenter.ToString();
FileStreamfs=newFileStream(saveFileName,FileMode.CreateNew);
gridEXExporter1.Export(fs);
}
判断GridEX控件中选中行的情况
If (gridEX1.CurrentRow!
=null&&griEX.CurrentRow.RowType==RowType.Record)
RowType:
SpecifiesthetypeofrowintheGridEXcontrol(确定GridEX控件中的某行的类型)
包括:
1.Record:
Arowthatrepresentsarecordinatableoranobjectinacollection
2.NewRecord:
Arowthatrepresentsanemptyrowusedtoaddrecords
3.GroupHeader:
Arowthatrepresentsagroupheaderrow
4.GroupFooter:
Arowthatrepresentsagroupfooter/totalrow
5.TotalRow:
Arowrepresentsatabletotalrow
6.FilterRow:
Arowthatrepresentsafilterrow
获取选中行的内容object类型
gridEX1.GetValue(“列名”);
//Selectthenewrowingrid
gridEX1.MoveTo(gridEX1.GetRow(newMessage));
gridEX1.Focus();
用户数据集方法进行数据的操作
//单元格中的为下拉框,加载数据
GridEXColumncategories;
categories=GridEX1.RootTable.Columns["CategoryID"];
categories.HasValueList=true;
categories.ColumnType=ColumnType.ImageAndText;
categories.EditType=EditType.DropDownList;
GridEXValueListItemCollectionvalueList;
valueList=categories.ValueList;
foreach(JSNorthWindDataSet.CategoriesRowrowinjSNorthWindDataSet.Categories.Rows)
{
GridEXValueListItemitem;
item=newGridEXValueListItem(row.CategoryID,
row.CategoryName);
//setimageKeyforitems
item.ImageKey="Cat("+row.CategoryID+")";
valueList.Add(item);
}
privatestringGetLayoutDirectory()
{
DirectoryInfocurrentDirectory=newDirectoryInfo(Application.ExecutablePath).Parent;//先找到程序可执行文件的父目录
while(currentDirectory!
=null)
{
DirectoryInfo[]childDirectories=currentDirectory.GetDirectories();//获取该父目录的所有子目录
foreach(DirectoryInfochildDirinchildDirectories)
{
if(childDir.Name=="LayoutData")
{
returnchildDir.FullName;
}
}
currentDirectory=currentDirectory.Parent;
}
return"";
}
GridEXDesigner
快速定位某行数据
1查找第一行
gridEX1.Find(gridEX1.RootTable.Columns["messageID"],ConditionOperator.Equal,messageId,-1,1);
要进行比较的列,比较的方式,比较的内容
2查找当前下一条相同的
gridEX1.Find(gridEX1.RootTable.Columns["messageID"],ConditionOperator.Equal,messageId,gridEX1.Row,1);
3查找当前上一行相同的
gridEX1.Find(gridEX1.RootTable.Columns["messageID"],ConditionOperator.Equal,messageId,gridEX1.Row,-1);
4最后一行相同,从后面开始查询
gridEX1.Find(gridEX1.RootTable.Columns["messageID"],ConditionOperator.Equal,messageId,-1,-1);
数据库中的real类型对应.NET中的syste
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 关於 GridEx 操作