版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第 页第第ii页下面的一段的意思是,如果有主子表联动的情况下,主Grid的记录只有一行的话,无法触发FocusedRowChanged事件,需要手动绑定数据if(ds7ables0RowsCount=1)stringid=ds.Tables0.Rows0riDr.7bStnng();后工序反馈KLsysBLL.YC_AbnomalBillbllabnormal=newKLsys.BLLYC_AbnomalBill();Grid_FeedBack.DataSource=bll_abnormal.GetListf1BillNO=”+id+”ANDBillTypelD=2);fiGnd.FeedB
2、ack.DataBind();护异常信息KLsysBLL.YJNoWorkAbnormalbllnoworkAbnormal=newKLsys.BLL.YJNoWorkAbnormal();Grid-SCYC.Datasource=bll_noworkAbnormal.GetList(MDillNO=m+id+);Gnd_SCYC.DataBind();Grid行内UpdateGild的行内更新下面的一段的意思是,如果有主子表联动的情况下,主Grid的记录只有一行的话,无法触发FocusedRowChanged事件,需要手动绑定数据protectedvoidGridViQv/_List_Row
3、Updating(objGctsender,DevExpressWebDataASPxDataUpdatingEventArgse)(eCancel二【rue.必灰要加DevExpreSWebASPxGridVicwASPxGridViev_grid=senderasDevExpress.WebASPxGndVievzASPxGridView;_grid.CancolEditO;必惡聲加strinQkey=e.KeysO.lbStrinq()./取取更改后的值stringcustomerQuantity=eNGwVaiuesCustomQrQuantity=null?:gNo,WaluGsMC
4、ustomGrQuantityMToStringO;stringcustomerDefectQuantty二e.NewV8luesCu5tomeDefeclQu8ntrty”二二null?.e.NewValueslCustomerDefectQuantityJ.ToStnncstringcustomerOutRate=e.NewVaiuesCusiomerOuiRaie”=nui。w,eNewValuesCusiomerOulRaie”DSMing(),KLsysBLL.YJ_Machinmgbl_yj=newKLsys.BLLYJ_Machinmg();KLsys.Modol.YJJJach
5、ininamodGl_yj=nowKLsys.Modol.YJJdachiningO;获取以前的数癌m(xJel_yi=bll_yjGetModBl(key),Jy9wfItw99UJ2八KLsys.Model.YJ_MachiningmodoLyj=newKLsys.ModelYJJu1achining();鉄取以前的数据model_yj=bii_y).Ge(Model(key),”更新麵PageValidatGIsDecimal(MM);PageValidste.lsNuniber(”);model_yjCustooerQuantity=custocnerQuantity=”mo(Jei_
6、y).CustomerQuantityConvertT0ln(32(custxnerQuantity).modeLyjCustomerDefectQuantity=customerDefectQuantity=”?model_yjCustomerDefectQuantrty:ConvQrt.lblnt32(customerDmodl_yjCustomerOutRato=customerOutRate=m?modeLyjCustomerOutRate-ConvertTbDQCimal(customerOutRatQ);bll_yj.Update(modeLyj).BindDropDown():B
7、indGndQ;._如果需要在行内实现DiopDowiit(见GridSimpleDemo.aspx)在需要将这一行/IJSWBVUZ54JV/ZICAIlllfdx:GridViewDataComboBoxColuninVisibtelndex=w3,*FieldName=*,CategoryTypeNameCaption二”所属类8U名称”Width然后在CellEditorlnitialize事件中初始化并给他绑定DataSet,protectedvoidGridViewCategory_CellEdrtorlmtialize(ob|ectsender,ASPxGndViewEditor
8、EventArgse)/命选出有Combo的列if(GridView_CatQgoryIsEditing|qColumnFieldName!=MCatQgoryNameM)return,获取编轻列的ComboBoxASPxCcwnboBoxcombo=EditorasASPxComboBox;加邦定Edit模版里面的ComboBox数据comboTextField=”CatogoryNamo”;combo.ValueField=ID*1;comboDataSource=bILCategoryTypeGetAIIList(),combo.DataBind();然后在Updating事件中,pro
9、tectedvoidGridView_C0tegory_RowUpdating(objectsender.DevExpressWebDataASPxDataUpdatingEventArgse)e.Cancel二true,DevExpressWebASPxGridView.ASPxGridViGwgrid=senderasDevExpressWebASPxGridViewASPxGridView;grid.CancelEditO;stringkey=eKeysO.TbString(),stringnev/_TypelD二e.NewValueslCategoryNamel.TbStrmgO,/S
10、flMDropDown选择了新的话.則值是WIuq.如果没有选择新的则为做tstringnGv/_CatGrogyNamG=gNev/ValuespCategoryNamGTbStringO;KLsysModei.JCSJ_Categorymodel二newKLsysModelJCSJ_Category(),model=blLCategory.Getfrlodel(key).砂靈直吴以前的值if(nev/_TypeiD1=bll_Catego(yTypGGetModel(modGlTypQlD).CatGgoryNamG)modelTypeID=new_TypelO,model.Calogor
11、yName二nGW_CatQrogyNamezbl_CategoryUpdate(modGl);BindGridO;即可oGrid删除行删除Gnd的数据。protectedvoidGndViev/_List_Rov/Deleting(objectsenderzDevExpress.WebData.ASPxDataDeletmgEventArgse)e.Cancel二true;stringkey=qKeys(0ToSringOnewKLsysBLL.YJMachining.DolQto(kGy);BindGndO,Grid自定义按钮自定义按钮用RowConmiand爭件来实现在前台:事件声明:a
12、sp:LinkButtonID=,LinkButton1r花xt二”详细”runat二”serve广CommandName=r,linkurr*CommmndArgument=v%;EvBl(”ID”)%/dx:GndViewDataColumn,后台方法:protectedvoidGrKjView_List_RowCommand(objectsender,DevExpress.Web.ASPxGndView.ASPxGndViev/RowCommandEveirArgse)SetConditionO;ResponseRedirect(*Editasp/?id=weCommandArgsCom
13、mandArgumentTbStnngO).其中SetCondition就是查询条件保持。Grid列翻译对Grid里面列翻译,比如1是2否一般是在Gnd的列中调用后台的函数,如事件声明:protectedstringTanslateShift(strings)if(s.TrimO二二nAn)return”早班;if(s.TrimO二二,rBr,)return”中班,;if(s.TrimO二return”晚班:return:Grid主子表关联主子表关联是很常用的功能,选择一个主表的时候,同时在页面下方的Gnd显示他的关联信息。主要实现是FocusedRowChanged事件,同时需要修改Gild
14、的几个属性。事件声明:uiviw-yinj-urydx.ASPxGndViewiDGridView_LisfClienllnstaneeName=HGridView_Lisfrunat=serverOnRowComrr|号里bleCallBacksbFalse:*eyFieldNarneJDWidth=1OO%e,AutoGenerateColumns=wFalseOnS创ecEionS汕ci巳cJhGri匕ViewLisiSelectionChanaerOnRewqodatmg=*GridVibw_List_R.owUpdatnlonFocusedRowChangwIGrKlViewLisC
15、FocusedRowChanged*4ssFilePath=-/AppThemes/OfficeiSettmgsEWQqMhn/iuQlhAvuHrabmPannl=Tri*Chnu/UnriTAnfatGrrnlRar=trii-/uiviuynu-uiv*vdxiASPxGridViewID二GidView_List”ClientlnstanceName=HGrid/iev/-Listwainat=,serverF,OnRov/ComrrEnableCallBacks-FalseKeyFieldName-lD11Width=,100%MAutoGenerateColumns=MFalser
16、OnSelectionChancied二GridViewListSelectionCh日naedOnRowljpdating=,Grid/iew_List_RowUpdatii|OnFocusedRowChanged=HGndViewListFocusedRowChangedMissFilePath=H/AppThemes/OfticelussPostrix=orTicezuiubiueVGottinnuhaajRrminPannl=,rTriioMahcwHcrTzcntalGcmllRaiiiTig4允许选中行,行事件走后台。-CssPostfix=wOffice2010Blue-Sett
17、ingsBehaviorCfUmnRe5IZ6M0a6=UOntrOl|/MIOVybqcusedRow=truewProcessFocusedRowChangedOnServe二ue”ConfirmDelete二p|ie”AllowSelectByRowClick1*后台事件:protectedvoidGridView_List_FocusedRowChanged(objectsender,EventArgse)for(inti=0;i_:、I:AI.CfL:l-J-L.AAIprivatevoidBindDQtailGrid(stringid)KLsys.BLL.YC_AbnomalBil
18、lbiLabnormal=newKLsys.BLL.YC.AbnomalBillO;GridFeedBackDataSource=bH_abnormalGetList(MBillNO=”+id+”ANDBillTypelD=2”),Gnd_FeedBack.DataBind();KLsys.BLL.YJ_NoWorkAbnormalblLnoworkAbnormal二newKLsys.BLL.YJ_NoWorKAbnormalO;Grid_SCYC.DataSource=blLnoworkAbnormalGetListCBillNO=w+id+m”);Gnd_SCYC.DataBind();跳
19、转页面后信息保存当你的Gnd有多页,查询条件也已经选择的情况下,点击跳出页面后,再跳回来,这个方法可以让你记住你当前的信息。E1#egion查询条件保持田protectedvoidSetCondition()Z|田protectedvoidGetQueryCondition(也protectedvoidBindGridViaSession()Q#endregionSetConditionQ是保存信息后面两个是从Session中获取信息,用在Page_Load函数里面。protoctodvoidSetConditionOstringuri=Request.Url.AbsoluteUn.lbLow
20、er().Split(newchart)?)0;Hashtablehtable=newHashtableO;htableAddCuri,Request.UrlAbsolutellriTbLower().Split(newchar)0);for(inti=0;iGridViewList.VisibleRowCount;i卄)_if(GridViewList.Selection.IsRowSelected(i)htablerGridView_UstJndex=i.ToString();stringkey=(object)GridView_List.GetRowValues(i,newstringI
21、D).TdString();hbbleGidView_Li5t_5electedlD”二key;break;htable.Add(”GridViGw_List_pagg:GridView_Ust.Pagelndex.lbString();if(DateEdit_WorkDateBegin.Value!=nul)hteble,DateEdrt-WorkDateBegin-valuer=Convert.7oDateTime(DateEdit_WorkDateBegin.Value.TbStnng().ToShortif(DateEdit_WorkDateEndValue匕null)htable,D
22、at9EdiLWorkDat0End-value,=ConvertToDateTinie(DateEdit_WorkDateEndValue.ToStnngO)ToShortDathtablerDropDov;n_Line_va!uel=DropDov;n_Line.Value.7oString();htable(KDropDovnJfeamNO_valueM|=DropDownJfeamNOV8lue.lbS1ring();htable”DropDown_Shift_valu3=DropDown_Shift.Value.lbStnng();SessionuriJ=htable;思路是用这个P
23、age的URL作为键值放到Session中,这个页面的具体信息比如Grid的当前页,当前选择的行,控件的选择的指,会放入HashTable中,然后把这个HashTable放入Session中。在Page.Load中获取他的时候:protectedvoidGetQueryCondition()stringuri=Request.Url.AbsoluteUri.1bLowor().Split(newcharJ*?*)0,if(SessionuriJ二二null)return;Hashtablohtable=SessionuriasHashtable;if(htable.ContainsCDateE
24、drt_WorkDateBegin_value,*)DateEdit_WorkDateBeginValue=Convert.lbD型eT1me(htoblerD型eEdit_WorkD8teBegin_v8lue”TbString();if(htable.ContainsC,DateEdit-WorkDateEnd_value,)DateEdit_WorkDateEndValue=Convert.7bDateTime(htabteMDateEdit_WorkDateEnd_valueM.IbString()?if(htable.Contains(,DropDown_Lme_value,t)pr
25、otectedvoidBindGridViaS0SSion()stringuri=Request.Ur1.AbsoluteUri.TbLower().Split(newchart?)0;if(Sessionuri=null)return;Hashtablehtable二Session(unasHashtatfe;主Girdif(htableContainsC,GridView_List_page,)GndViewList.PageIndex=Convert.Tblnt32(htable,GndView_ListM.ToStnng();if(htableContainsC,GridView_Li
26、st_indexM)/GridView_ExceptionBill.FocusedRowlndex=Convert.Idlnt32(htaWe(HGndView_ExceptionBilUndexM.ToString()GndViewList.Selection.SelectRow(Convert.Iblnt32(htableuGndViev/ListjndexM.ToString();;绑定子Gridif(htabteContainsCGndViGW_List_selGctQdlD)BindDetailGrid(htablerGridView_List_setectedlDMTbString
27、O);if(htabteContainsCGndSCYCjage)Grid_SCYC.Pagelndex=Convert.7blnt32(htableMGrid_SCYC_pageM.7bString();if(htabteContamsCGnd_SCYCJndex)/GridView_ExceptionBillFocusedRowIndexConvertTblnt32(htaNe,GridView_ExceptionBillJndex,lbStringO);Grid_SCYC.SGtectionSGlectRov/(ConvQrtTblnt32(htabter,Gnd_SCYC_indGXR
28、TbStringf);if(htableContainsCGrid_FeedBack_pagen)Grid_FeedBack.PageliKiex=Convert.Iblnl32(htablerGrid_FeedBackj)ageHJ.ToString();if(htabteContains(,Grid_FGGdBackjndexM)根据URL从Session中取信息,赋给具体的控件。3.2Tree与基本控件操作凯领系统的Tree与基本控件操作是采用DevExpressDXpenence12.1来实现的。3.2.1注意事项卜拉列表使用ASPxComboBox来实现。局部刷新使用.NET自带的U
29、pdatePanel实现。Tree结构使用ASPxTreeList实现貝体代码见TieeDemo.aspx3.2.2代码范例Tree数据绑定Tree数据的绑定往往在数据表中是以二维表的结构存储,控件本身会自动折叠数据。如果这个Tree与别的控件有数据的联系,则可能需要递归的绑定数据。参照代码:(TieeDemo.aspx下同)】privatevoidBindTree()KLsys.BLLCSJ_Departmentdepartment=newKLsys.BLL.JCSJ_Deparlment(),DataSetds二department.GetList(H1-1w);DataViewdv二ne
30、wDataView();ds7ables0ColumnsAddCSoriCor,typeof(decimal),foreach(DataRowdrindslables0Rows)trydrrSortCor=Convert.lbDecimal(drriD,.lbString();/ds.lablesIOJ.ColumnsriD.Datalype=Type.GetType(nSystem.lnt32n);dv.lable=ds.7ables0;dv.Sort=SortColasc;Tree_Dept.DataSource=dv;Tree_Dept.DataBind();在Tree的前台V!部门树开
31、始一通过这两个属性来绝对树的样子。与Tree的数据关联要想在Tie亡选择行改变的时候,同时改变其他的控件,需要使用FocusedNodeChanged件与设置几个属性。、!一邙1Jf7T5ti1ILxpanoGQiiapsgACTion=su/iieniiaetvemsrocuseaioaeunangea-runciibn(5e)后台事件,需要递归的获取Nock的子NodeprotectedvoidTree_Dept_FocusedNodeChanged(objectsender,EventArgse)if(Tree_Dept.FocusedNode1=null)_Sessionrkeyl=(
32、Stnng)Tree_Dept.FocusedNodeDeptNOw;BindGridView();1A_-Jc_:ClfiprivatevoidBindGridView()StringBuildercondition二newStringBuilderO,conditionAppendf(DeptNOisnull)OR(1=1M);理缜if(thisbropDownList_WorkTypeSetectedlndex匕0&thisDropDownLisl_WorkTypeSelectedlndex-1)condrtion.AppendFomiat(MANDTypelD=M+thi5.DropD
33、ownLisl_WorkType.Setectedltem.Value.7bStnng()+elsecondition.AppendFormatCAnd1=1”);if(this.DropDownList_Grade.SelectedIndex!二0&this.DropDownLisLGrade.SelectedIndex!=-1)region根据树形节点获取所选部门StnngBuildersb_where=nowString8uilder();if(Sessionlkey1*!=null)(Listids=newList();idsAto(SessionPkeyLTbStringO);|ce
34、tsiiorenuepMKls,essionrkey”.lbString(),newKLsys.BLLCSJ_DepartmentOGetAllList();feblesO);Slring8uilderstr_ids=newStnngBuilder();foreach(Stringstrjdinids)strJds.Append(,MW+str.id+w,n);)Stringdeptids=strJds.fbStringO;deptids=deptidsSubstring(O,deptidsLength-1);sb_where.AppendCDeptN0in(”*deptids,”)”);KL
35、sys.BLL.JCSJ.DepartmentbILdepartment=newKLsys.BLL.JCSJ_DepartmentO;HiXHXaroriEaCd&liciQ5水arqToQlrirr/XToRlacrlAl*privatevoidGetChildrenDept(Listvstingids,stringdeptid,Datalabledt_dept)DataRowrowdept=dt_deptSelect(t,ParentDeptNO=,F,+deptid+,m,);foreach(DataRow_rowdeptinrowdept)ids.AddCrowdeptt,DeptNO
36、t,.7bString();GetChildrenDept(ids,_owdept”DeptNCr/R)Sting(),dt_dept);DropDown控件DropDown控件在前台的设置:tdstyle=*width:78pxcl8ss=%exttd怜在后台的绑定数据:jwr*2jyW2.W./圾銀KLsys.BLL.JCSJ_1eamblljeam=newKLsys.BLL.JCSJ_leam(),DataSetdsjeam=bllJeam.GetAIIListO;tliis.DropDov/nLisLleamNO.DataSource=dsjeam.this.DropDov/nLisL
37、lGamNO.10 xtFiGld=IfeamNamy;this.DropDov/nLisLleamN0ValueField=TeamNO;this.DropDov/nLisLleamN0DataBind();this.DropDownList_feamN01terns.lnsert(OrnewDevExpressWebASPxEditors.ListEditlteniCgT-r);DropDownList_TeamNOSelectedlndex=0;可在第一行加上“请选择”这个Itenio局部刷新在前台,(前面必须有一个ScnptManager)声明:匚IVCIKIL/在前台,(前面必须有一
38、个ScnptManager)声明:匚IVCIKIL/IIIIIVIU57IILIIIIIIQIIjj-.IvContentlemplate1-1IsIsvdivid二”main-diV、v/divCIto在ContentTemplate括起来的部分里面,发生的全局方法会变成局部刷新(这个时候,后台的弹框事件和response.wiite有关的方法均不能使用)页面内弹框页面内弹框使用一个runat=”server”的drv实现,在后台控制他的visualable属性,通过div内部的按钮事件将结果传递给其他控件。见PopDemo.aspx在前台,(前面必须有一个ScnptManager)声明:控
39、制人小通过css控制。7U1U旧选择生产绸divclass二pop_body”A坊线:dxASPxComboBoxID=*DropOown_Line_Target_CLMrunat=*servernWidth=M141px*DropDownStyle=MDropDoasp:ButtonID=Button10Mrun戲二PorvQr”lbxt=”取消class=*inputbuttonMOnClick=ButtonBackClick*与普通的写法无异,不过是讲东西都嵌套进div中。后台:protectedvoidButton_Back_CIick(objectsender,EventArgse)
40、口选择生产线第一个函数是控制div的消失visualable=false卜面的就是函数里而具体的爭件。3.3报表打印简单的报表打印直接使用控件自带的ASPxGndViewExporter即町,对于复杂的打印,要在现有的Excel中找到模版,然后根据列将数值填进去。3.3.1注意事项打印往往是公共方法,所以应该做成static事件,放在App_Code文件夹中。332代码范例简单的打印利用控件自带的打印。参照代码:(TreeSimpleDemo.aspx下同)前台:I冃Hii后台的打印事件:protectedvoidBtn_Pint_Click(objectsender,EventArgse)-
41、ASPxGridViewExporter1.GridViewlD=,GridView_Category,;ASPxGid/iewExporte1.VViteXlslbResponse(”9:);复杂表单的打印首先是打印的公共方法,在App.Code的PublicPmit中,代码如下iIIIillHipublicstaticvoidPrintXLJD(stringid.System.Web.UI.Pagepage)KLsys.BLLYC_AbnomalEmployeeblAbnormalE=newKLsys.BLL.YC_AbnomalEmployee():DataSetds二blLAbnormalE.GetAbnormalBill(id),Excel.Applic创ionClassMyexcel二newExcel.ApplicationCI刍ss();|IntPtrt=nev/lntPtr(f71yexcel.Hwnd),|n(p/iyexcei=nun;MessageBoxShov/(pagerEXCEL无法启动r);return;进程句扁矗義得是为了以后可以杀掉进程,不然服务器会残留很多Excel的进程。/倾轆st
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 铝厂熔铸车间安全常识培训课件
- 论西安地铁控制中心信息化建设对运营安全的促进作用
- 2026中国智能卡行业市场供需分析及投资评估规划分析研究报告
- 甲烷氯化物废水治理实验方法与技术应用
- 2026中国陶瓷膜分离技术在污水处理领域渗透率
- 商住小区一期消防通风安装工程施工组织方案
- 2026人工智能芯片市场需求供给分析投资布局规划研究发展报告
- 2026中国新能源光热行业市场调研及投资热点与未来发展与趋势报告
- 2025年阿里巴巴财务分析报告:盈利能力与业务分拆效应
- 2026食品加工设备市场竞争态势与投资扩张计划分析报告
- 暖通施工安全方案
- 江财微积分课件
- 模板-定期风险评价报告模板
- 2025年公务员面试国际发展合作问题与答案
- GB/T 3672.1-2025橡胶制品的公差第1部分:尺寸公差
- 2025广东茂名市电白区事业单位招聘100人考试备考题库及答案解析
- 华润电力控股内蒙古区域招聘笔试题库2025
- 轧钢工(高级)轧钢工职业技能考试题(附答案)
- 比伐卢定护理
- 门诊护理礼仪规范与实务
- 普惠金融营销课件
评论
0/150
提交评论