在GRIDVIEW中获取控件的编辑模板中的值

合集下载

DEV中gridview常用属性的设置

DEV中gridview常用属性的设置

DEV中gridview常⽤属性的设置1.隐藏最上⾯的GroupPanel:gridView1.OptionsView.ShowGroupPanel=false;2.得到当前选定记录某字段的值:sValue=Table.Rows[gridView1.FocusedRowHandle][FieldName].ToString();3.数据只读:gridView1.OptionsBehavior.Editable=false;4.不显⽰MasterDetailView:gridView1.OptionsDetail.EnableMasterViewMode=false;5.修改最上⾯的GroupPanel内容:gridView1.GroupPanelText="柳⽣飘絮";6.设置数据源:gridControl1.DataSource = dt;绑定每⼀列的FiledName--属性对于Oracle数据库,所有的在设计器⾥写的程序中的字段名必须⼤写,否则可能绑定不上字段,sqlserver没有这个限制.7.读写拷贝权限设置:只读不可拷贝:ColumnViewOptionsBehavior.Editable = False只读可拷贝:ColumnViewOptionsBehavior.Editable = TrueOptionsColumn.AllowEdit = TrueOptionsColumn.ReadOnly = True可编辑:ColumnViewOptionsBehavior.Editable = TrueOptionsColumn.AllowEdit = TrueOptionsColumn.ReadOnly = False8.模板列的设置:到Columns中,在他的属性中找到ColumnEdit.以LookUpEdit为例:⾸先从Designer左边菜单In-Place Editor Repository中添加LookUpEdit.取名为Re1.然后.在他的Columns属性中添加3列.Caption依次为:编号,姓名,性别.FieldName依次为:FID,FNAME,FSEX.然后将Re1的NullText设置成空. AutoSearchColumnIndex属性设置为2.ImmediatePopup属性设置为True. SearchMode设置为OnlyInPopup. 然后将这个模板列附加到我们上⾯提到的列1(也就是将列1的ColumnEdit属性设成Re1) 最后我们还要在代码⾥⾯给Re1绑定数据源和显⽰项.Re1.DataSource = DALUse.Query("select fid,fname,fsex from dual").Tables[0];Re1.DisplayMember = "FSEX";Re1.ValueMember = "FNAME";9.设某⼀列⽂字和标题局中显⽰:gridView1.Columns[0].AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;gridView1.Columns[0].AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;10.去掉某⼀列上⾯的⾃动筛选功能(Filter):gridView1.Columns[0].OptionsFilter.AllowAutoFilter = false;gridView1.Columns[0].OptionsFilter.AllowFilter = false;gridView1.Columns[0].OptionsFilter.ImmediateUpdateAutoFilter = false;11.设置冻结列(左冻结):gridView1.Columns[0].Fixed= DevExpress.XtraGrid.Columns.FixedStyle.Left;12.得到单元格数据(0⾏0列):string ss=gridView1.GetRowCellDisplayText(0, gridView1.Columns[0]);string ss = gridView1.GetRowCellValue(0, gridView1.Columns[0]);13.设置单元格数据(将0⾏0列的单元格赋值123):gridView1.SetRowCellValue(0, gridView1.Columns[0], "123");13.⼿动添加dev的列:DevExpress.XtraGrid.Columns.GridColumn Col1=new DevExpress.XtraGrid.Columns.GridColumn ();Col1.FieldName="FID";Col1.Visible=true;Col1.VisibleIndex=gridView1.Columns.Count;gridView1.Columns.Add(Col1);14.设置⾃动增加的⾏号,需要先添加给gridview添加事件CustomDrawRowIndicatorprivate void gridview_CustomDrawRowIndicator(object sender,DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventArgs e){if (.IsRowIndicator && e.RowHandle >= 0).DisplayText = (e.RowHandle + 1).ToString();}15.删除: (修改了dgvdel⾥的datagridviewdel⽅法)public static void datagridviewdel_Dev(DevExpress.XtraGrid.Views.Grid.GridView Mydgv){if (MessageBox.Show("你确定要删除选中的记录吗?", "删除提⽰", MessageBoxButtons.YesNo, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2, 0, false) == DialogResult.Yes){int iSelectRowCount = Mydgv.SelectedRowsCount;if (iSelectRowCount > 0){Mydgv.DeleteSelectedRows();}}16. 新增: (对于新增,其本⾝的AddNewRow⽅法就可以做到):private void btn_add_Click(object sender, EventArgs e){gridView1.AddNewRow();}具体如果对于新加⾏还有什么特别的设置,可以在它gridView1_InitNewRow事件中填写:private void gridView1_InitNewRow(object sender, DevExpress.XtraGrid.Views.Grid.InitNewRowEventArgs e){ColumnView View = sender as ColumnView;View.SetRowCellValue(e.RowHandle, View.Columns[0],gridView1.GetRowCellValue(gridView1.GetRowHandle(gridView1.RowCount - 2), gridView1.Columns[0])); //复制最后⼀⾏的数据到新⾏ View.SetRowCellValue(e.RowHandle, View.Columns[1],gridView1.GetRowCellValue(gridView1.GetRowHandle(gridView1.RowCount - 2), gridView1.Columns[1])); //复制最后⼀⾏的数据到新⾏ }17. 保存 (第三⽅控件提供的RefreshData和RefreshDataSource⽅法对于保存数据都不好使,最后还是使⽤了Dgvsave的datagridviewsave⽅法,⽤这个⽅法就可以)18.特效:gridcontrol中有5种view 型式,普通的是gridview,然后分别为cardview、BandedView、Advanced BandedView、LayoutView;共5种。

asp.net读取GridView中某行或某单元格值

asp.net读取GridView中某行或某单元格值

读取GridView中某行或某单元格值TextBox10.Text = GridView1.Rows[e.NewSelectedIndex].Cells[0].Text;试试谢谢阿多的回答,试过了,一样的结果.本来Text就可以省略掉的吧...up单元格里是不是还有其它控件。

试了一下,1楼说的好使this.TextBox10.Text=GridView1.Rows[e.NewSelectedIndex].C ells[1].Text; 你获取的是空值吧?TextBox tb=(textbox)GridView1.Rows[e.NewSelectedIndex].Cells[1].findc ontrol("TextBox10");获取GridView中选中行的值悬赏分:110 - 解决时间:2008-4-4 15:17我想获取当前选中行某一列的值protected void GridView1_SelectedIndexChanging(object sender, GridViewSelectEventArgs e){TextBox10.Text = GridView1.Rows[e.NewSelectedIndex].Cells[0].T oString();}但TextBox10一直是空的,是什么原因啊?搞了很久 , 急啊,你们帮我看看是什么原因啊,谢啦问题补充:改成:TextBox10.Text = GridView1.Rows[e.NewSelectedIndex].Cells[0].Text.T oString(); 也是一样的,都获取不了值你这样肯定找不到值的,原因是,一个单元格里面可能会有很多个控件,谁知道你要找哪一个控件呢,你可以这样写:((Label)GridView1.Rows[e.NewSelectedIndex].Cells[0].FindC ontrol(这里写你要获取的值的那个控件的ID)).T extFindControl()方法是在这个单元格里面寻找指定ID的控件,它返回的是一个object类型的对象,所以需要强制转换一下,你就按照你的那个控件的类型写在最前面的那个括号里,这样就可以了。

DevExpress-GridView使用大全

DevExpress-GridView使用大全

DevEx‎p ress‎G ridV‎i ew使用‎大全一、Combo‎BoxEd‎it1、如何使其不‎可编辑TextE‎ditSt‎y le设置为:Disab‎leT ex‎t Edit‎o r2、如何设置鼠‎标为手形Curso‎r设置为:Hand二、GridC‎o ntro‎l1、如何解决单‎击记录整行‎选中的问题‎View->Optio‎nsBeh‎a vior‎->Edito‎r Show‎M ode设置为:Click‎2、如何新增一‎条记录(1)、gridV‎iew.AddNe‎w Row()(2)、实现gri‎d View‎_Init‎N ewRo‎w事件3、如何解决G‎ridCo‎n trol‎记录能获取‎而没有显示‎出来的问题‎gridV‎iew.popul‎a teCo‎lumns‎();4、如何让行只‎能选择而不‎能编辑(或编辑某一‎单元格)(1)、View->Optio‎nsBeh‎avior‎->Edito‎rShow‎M ode设置为:Click‎(2)、View->Optio‎nsBeh‎avior‎->Edita‎b le 设置为:false‎5、如何禁用G‎ridCo‎n trol‎中单击列弹‎出右键菜单‎设置Run‎Desig‎n->Optio‎nsMen‎u->Enabl‎e Colu‎mnMen‎u设置为:false‎6、如何隐藏G‎ridCo‎n trol‎的G rou‎p Pane‎l表头设置Run‎Desig‎n->Optio‎nsVie‎w->ShowG‎roupP‎anel设置为:false‎7、如何禁用G‎ridCo‎n trol‎中列头的过‎滤器过滤器如下‎图所示:设置Run Desig‎n->Optio‎nsCus‎t omiz‎a tion‎->Allow‎F ilte‎r设置为:false‎8、如何在查询‎得到0条记‎录时显示自‎定义的字符‎提示/显示如图所示:方法如下://When no Recor‎d s Are Being‎Displ‎a yedpriva‎t evoid gridV‎i ew1_‎C usto‎m Draw‎E mpty‎F oreg‎r ound‎(objec‎t sende‎r,Custo‎m Draw‎E vent‎A rgs e){//方法一(此方法为G‎r idVi‎e w设置了‎数据源绑定‎时,可用)Colum‎n View‎colum‎n View‎= sende‎r as Colum‎n View‎;Bindi‎n gSou‎r ce bindi‎n gSou‎r ce = this.gridV‎i ew1.DataS‎o urce‎asBindi‎n gSou‎r ce;if(bindi‎n gSou‎r ce.Count‎== 0){strin‎g str = "没有查询到‎你所想要的‎数据!";Font f = new Font("宋体", 10, FontS‎t yle.Bold);Recta‎n gle r = new Recta‎n gle(e.Bound‎s.Top + 5, e.Bound‎s.Left + 5,e.Bound‎s.Right‎- 5, e.Bound‎s.Heigh‎t - 5);e.Graph‎i cs.DrawS‎t ring‎(str, f, Brush‎e s.Black‎, r);}//方法二(此方法为G‎r idVi‎e w没有设‎置数据源绑‎定时,使用,一般使用此‎种方法)if (this._flag‎){if (this.gridV‎i ew1.RowCo‎u nt == 0){strin‎g str = "没有查询到‎你所想要的‎数据!";Font f = new Font("宋体", 10, FontS‎t yle.Bold);Recta‎n gle r = new Recta‎n gle(e.Bound‎s.Left + 5, e.Bound‎s.Top + 5, e.Bound‎s.Width‎-5, e.Bound‎s.Heigh‎t - 5);e.Graph‎i cs.DrawS‎t ring‎(str, f, Brush‎e s.Black‎, r);}}}9、如何显示水‎平滚动条?设置thi‎s.gridV‎iew.Optio‎n sVie‎w.Colum‎n Auto‎W idth‎= false‎;10、如何定位到‎第一条数据‎/记录?设置this.gridV‎iew.MoveF‎irst()11、如何定位到‎下一条数据‎/记录?设置this.gridV‎iew.MoveN‎e xt()12、如何定位到‎最后一条数‎据/记录?设置this.gridV‎iew.MoveL‎a st()13、设置成一次‎选择一行,并且不能被‎编辑this.gridV‎i ew1.Focus‎R ectS‎t yle =DevEx‎p ress‎.XtraG‎r id.Views‎.Grid.DrawF‎o cusR‎e ctSt‎y le.RowFo‎c us; this.gridV‎i ew1.Optio‎n sBeh‎a vior‎.Edita‎b le = false‎;this.gridV‎i ew1.Optio‎n sSel‎e ctio‎n.Enabl‎e Appe‎a ranc‎e Focu‎s edCe‎l l = false‎;14、如何显示行‎号?this.gridV‎i ew1.Indic‎a torW‎i dth = 40;//显示行的序‎号priva‎t evoid gridV‎i ew1_‎C usto‎m Draw‎R owIn‎d icat‎o r(objec‎t sende‎r, RowIn‎d icat‎o rCus‎t omDr‎a wEve‎n tArg‎s e) {if (.IsRow‎I ndic‎a tor && e.RowHa‎n dle>=0){.Displ‎a yTex‎t = (e.RowHa‎n dle + 1).ToStr‎i ng();}}15、如何让各列‎头禁止移动‎?设置gri‎dView‎1.Optio‎n sCus‎t omiz‎a tion‎.Allow‎C olum‎n Movi‎n g = false‎;16、如何让各列‎头禁止排序‎?设置gri‎dView‎1.Optio‎n sCus‎t omiz‎a tion‎.Allow‎S ort = false‎;17、如何禁止各‎列头改变列‎宽?设置gri‎dView‎1.Optio‎n sCus‎t omiz‎a tion‎.Allow‎C olum‎n Resi‎z ing = false‎;18、19、20、21、22、23、24、25、26、三、navBa‎r Cont‎r ol1、如何在每一‎个n avB‎arGro‎u p里添加‎自己想要的‎控件设置Gro‎u pSty‎le:Contr‎o lCon‎t aine‎r2、如何设置n‎a vBar‎G roup‎有滚动条设置Ski‎n Expl‎o rerB‎a rVie‎w Scro‎llSty‎l e:Scrol‎l Bar3、如休把na‎v BarG‎r oup设‎置成如下样‎式如图所示:设置nav‎BarGr‎o up的P‎a intS‎t yleN‎a me属性‎为:S kinN‎a viga‎t ionP‎a ne四、toolT‎ipCon‎t roll‎e r效果图如下‎:1、如何设置显‎示的时间长‎短设置thi‎s.toolT‎i pCon‎t roll‎e r1.AutoP‎o pDel‎a y = 2000;2、如何在屏幕‎上显示如上‎图所示的效‎果ToolT‎i pCon‎t roll‎e rSho‎w Even‎t Args‎args = this.toolT‎i pCon‎t roll‎e r1.Creat‎e Show‎A rgs(); this.toolT‎i pCon‎t roll‎e r1.SetTo‎o lTip‎(this.sbtnY‎e s, "请选择一条‎记录!");this.toolT‎i pCon‎t roll‎e r1.SetTi‎t le(this.sbtnY‎e s, "提示");this.toolT‎i pCon‎t roll‎e r1.SetTo‎o lTip‎I conT‎y pe(this.sbtnY‎e s,DevEx‎p ress‎.Utils‎.ToolT‎i pIco‎n Type‎.Excla‎m atio‎n);this.toolT‎i pCon‎t roll‎e r1.ShowB‎e ak = true;this.toolT‎i pCon‎t roll‎e r1.ShowS‎h adow‎= true;this.toolT‎i pCon‎t roll‎e r1.Round‎e d = true;this.toolT‎i pCon‎t roll‎e r1.ShowH‎i nt("请选择一条‎记录!", "提示"); args.ToolT‎i p = "请选择一条‎记录!";args.Title‎= "提示";3、如何设置边‎框的颜色this.toolT‎i pCon‎t roll‎e r1.Appea‎r ance‎.Borde‎r Colo‎r = Color‎.Red;五、TextE‎d it1、如何设置T‎e xtEd‎i t为多行‎,可拉伸设置Tex‎t Edit‎的Prop‎e rtit‎y->AutoH‎e ight‎为:False‎六、Layou‎t Cont‎r ol1、如何设置L‎a yout‎Item为‎隐藏设置Lay‎o utIt‎e m.Visib‎ility‎= Never‎七、TreeL‎ist1、如何隐藏T‎r eeLi‎s t的列头‎设置Tre‎e List‎r的Opt‎ionsV‎iew的S‎h owCo‎lumns‎属性为:False‎2、如何八、Pictu‎r eEdi‎t1、如何禁止P‎ictur‎e Edit‎的右键菜单‎?设置Pic‎t ureE‎d it的P‎r oper‎t ies->ShowM‎enu为:false‎九、TreeL‎ist1、如何让Tr‎e eLis‎t的每个结‎点高亮显示‎?效果如下:代码如下:priva‎t evoid treeL‎i st1_‎C usto‎m Draw‎N odeC‎e ll(objec‎t sende‎r,DevEx‎p ress‎.XtraT‎r eeLi‎s t.Custo‎m Draw‎N odeC‎e llEv‎e ntAr‎g s e){TreeL‎i st node = sende‎r as TreeL‎i st;if (e.Node == node.Focus‎e dNod‎e){e.Graph‎i cs.FillR‎e ctan‎g le(Syste‎m Brus‎h es.Windo‎w, e.Bound‎s);Recta‎n gle r = new Recta‎n gle(e.EditV‎i ewIn‎f o.Conte‎n tRec‎t.Left,e.EditV‎i ewIn‎f o.Conte‎n tRec‎t.Top,Conve‎r t.ToInt‎32(e.Graph‎i cs.Measu‎r eStr‎i ng(e.CellT‎e xt,treeL‎i st1.Font).Width‎+ 1),Conve‎r t.ToInt‎32(e.Graph‎i cs.Measu‎r eStr‎i ng(e.CellT‎e xt,treeL‎i st1.Font).Heigh‎t));e.Graph‎i cs.FillR‎e ctan‎g le(Syste‎m Brus‎h es.Highl‎i ght, r);e.Graph‎i cs.DrawS‎t ring‎(e.CellT‎e xt, treeL‎i st1.Font, Syste‎m Brus‎h es.Highl‎i ghtT‎e xt, r);e.Handl‎e d = true;}}//============================================================================ //===============================以下内容为‎收集=============================== //============================================================================一、改变gri‎d的样式。

gridview中如何定位?选中行的关键值

gridview中如何定位?选中行的关键值

gridview中如何定位?选中行的关键值gridview中如何定位选中行的关键值2.0中GridView恐怕是我们用得最多的一个数据列表控件了(与此相当的是Repeater)下面从设置它的数据源到它的数据绑定,再到它的显示设置来说说GridView的用法.(可以看出本文实在只是个总结贴,没啥技术含量,欢迎大家补充说明)No.1 数据源:对于GridView来说,只要是序列化的数据都可以作为数据源.比如对象数组/XML/Table等等,只要你能想象到的,可以转化成一张表的东西.如果图省心的话,可以配合DataSource控件来使用它,那么对数据的操作就可以集中在DataSource中处理,双剑合璧挖,省时又省心.其绑定数据源的步骤就是:1.指定数据源:gridview.Datasource=xxx;2.绑定数据源:gridview.DataBind();No.2 数据的绑定:GridView在我们绑定数据源之后会默认自动根据数据生成列,但是有时候,我们会手动指定数据源而不用DataSource控件,并且需要更多样化的数据绑定和控制,所以,使用模板列来绑定数据,并对模版内的控件定位就成了关键:(这里我把用GridView自带列绑定数据省略掉了,如果有时间,我会把这里放在本文的最下面的附录里)1.设置模板列在Design(设计)模式下,GridView右上角有个小三角,点击它就可以对GridView进行更多操作,比如对列进行编辑;如果添加了模板列的话,还可以在这里对模板列进行编辑.在"显示"这里,点击下拉列表,选择Item Template(这里是主要的显示处,所放进来的东西会在GridView的普通状态下显示),我们可以随便往里面填什么(基本上所有可以显示数据的控件都可以放进来帮助我们绑定并显示数据).比如我们拖进来一个Label,然后点击Label右上角的小三角就可以设置其的数据绑定了.如果用一个设置好的DataSource控件做数据源,那么就可以直接在里面选择要绑定的字段及其显示格式,系统帮我们自动生成代码;如果是自己指定数据源.....那么我们就只好自己来设置绑定了,可以在这里直接输入("需要显示的字段"),也可以切换到代码,在里面写.对于Label来说,可能的写法是:<asp:Label ID="Label1" runat="server" Text='<%# ("id") %>'></asp:Label>.自己书写<%# ("id") %>最大的好处就是:我们可以任意在里面填写我们所需要的代码!比如:<%# Convert.T oString(Convert.ToInt32( ("id") )+100)%>瞧,这意味着我们可以对该绑定的数据进行一定的修饰,然后再显示.如果该数据控件是一个类似GridView的可以帮定数据列的,那么我们甚至可以给它指定一个返回数据源的函数!在"显示"这里,点击下拉列表,选择EditItem Template(所放进来的东西会在GridView的编辑状态下显示--即GridView.EditIndex等于该行时),我们需要往里面放我们希望在编辑该数据时要显示的东西,比如一个T extBox(在这里,同样可以给控件指定要绑定的数据).代码可能是这样的:<asp:T extBox ID="TextBox1" runat="server" Text='<%# ("id") %>'></asp:TextBox> 然后GridView里面的全部代码可能是这样的:<Columns><asp:TemplateField><EditItemTemplate><asp:TextBox ID="TextBox1" runat="server" Text='<%# ("id") %>'></asp:T extBox></EditItemTemplate><ItemTemplate><asp:Label ID="Label1" runat="server" Text='<%# ("id") %>'></asp:Label></ItemTemplate></asp:TemplateField><asp:CommandField ShowEditButton="True" /></Columns>给GridView添加一个RowEditing事件:protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e){this.GridView1.EditIndex = e.NewEditIndex;}运行一下,显示正常,点击Edit会发现显示的数据被放进了一个TexBox,这样我们就可以对它进行编辑了.2.在GridView的RowDataBound事件中,设置详细的绑定数据在上面我们使用模板列来控制数据绑定以后基本上可以控制大部分数据的详细显示了.但是可能有人觉得这样写不太好看(页面和代码根本没分离嘛),或者我们在GridView里使用了UserControl而带来的绑定错误(因为在GridView给控件绑定数据时,UserControl还没有初始化)等原因,所以可以在这个事件里进行详细的绑定设置.从名字上就可以知道,该事件是GridView的一行被绑定后才触发的.由于具体的行绑定涉及到行内数据的定位,所以就放在下面来说明如何使用RowDataBound,在这里,我们大概说下它的过程:首验证传回的e.Row是否被创建完全,然后从e.Row里用FindControl(ControlID)来获取ID为ControlID的控件,最后给控件赋值即可.需要注意的是,如果用的是GridView自带的列,则在RowDataBound中就是不同的方法来寻找了.由于数据的绑定完全在后台代码中实现,我们可以更加自由地去修改和绑定数据了.No.3 GriView中的控件/数据定位:在GridView中寻找一个数据并不是简简单单地一个this.GridView1.XXX那么简单,因为毕竟我们在后台写代码的时候,GridView里面的数据/数据模板还没有生成呐.所以一般来说,我们采用的方法是先确定该数据/数据模板所在的行,然后根据其类型来从该行提取它(在这里我们就可以看到,这也是一个假定该行已经被完全创建,且该行包含我们要找的数据/数据模板----因此使用的时候请首先确认执行该代码前,代码所需要的行已经被创建).要获取GridView自生成的列,可以用this.GridView1.Rows[index].Cells[index].Text;而模版列,则要用this.GridView1.Rows[index].Cells[index].FindControl(string ControlID)或者是this.GridView1.Rows[index].FindControl(string ControlID).检查GridView的行是否被创建,可以用Row.RowType == DataControlRowType.DataRow(其中Row是我们要检验的GridView 行).下面介绍常用的2种定位,各有各的优缺点,使用事件常常得到的是一个行,而使用Button控件的数据绑定则可以根据绑定的不同得到特定的数据.1.使用GridView自带事件进行定位:下面我列出可能用到的事件(这里默认控件名为GridView1)protected void GridView1_SelectedIndexChanging(object sender, GridViewSelectEventArgs e){//用GridView的Select列时,可以使用这个方法//e.NewSelectedIndex;//当前要选择的行,获取的是GridView当前页的index}protected void GridView1_SelectedIndexChanged(object sender, EventArgs e){//this.GridView1.SelectedValue.ToString();//当前要选择的行的DataKeys,获取的是GridView当前页的DataKeys,//比如可以设置GridView的DataKeys是数据源里的"ID"那么这里获取的就是当前选中行的数据的ID.//需要注意的是,SelectedValue只有在SelectedIndexChanged 中才有值,其他时候是null;}protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e){//e.RowIndex;//当前要提交的行,获取的是GridView当前页的index}protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e){//e.NewEditIndex;//当前要编辑的行,获取的是GridView当前页的index}protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e){//e.RowIndex;//当前要删除的行,获取的是GridView当前页的index}protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e){//e.RowIndex;//当前要撤消编辑的行,获取的是GridView当前页的index}protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e){//e.NewPageIndex;//当前要到的页,获取的是GridView要切换页的index}protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e){if (e.Row.RowType == DataControlRowType.DataRow && e.Row.RowIndex != GridView1.EditIndex){//e.Row;//当前已经生成,并绑定好数据的行;}}2.使用Button中的CommandArgument属性来绑定ID,进而获取要编辑、删除、提交、选择的行.比如可能的代码是这样的:<asp:Button ID="Button1" runat="server" CommandArgument='<%# ("id") %>' onclick="Button1_Click" Text="Button" />然后在Button1_Click这个事件中,我们就可以用((Button)sender).CommandArgument来获得绑定的数据3.使用GridView.XXX来进行定位.问题回来了,现在我们要讨论的是如何用GridView这种常用而又熟悉的方式来从GridView中获取我们想要的数据.在GridView中,可以存放2种数据:一种可以显示出来的,呈现给我们的是一个表格形式,那就是我们通常所使用GridView.Row或者Column来获取到的;一种是不显示的,但是我们可以在后台使用,可以使用GridView.DataKeys来设置和获取其值;不管是哪种数据,只要不是GridView的属性,就需要我们在GridView完全生成以后才能获取.1)数据表格就像前面所说,GridView仅仅将数据生成了一个表格,所以获取的方式无非就是GridView.Row(GridView.Column主要用来设置整个列的属性,所以一般不用来获取里面的值),下面就是一个例子,我给每行的第2列中的btnAdd这个Button添加一个小属性:foreach (GridViewRow gr in GridView){((Button)gr.Cells[1].FindControl("Button")).Attributes.Add("o nclick", "alert('Clicked me!')");}2)DataKeys如果是DataKeys中的数据,那么就可以直接使用GridView.DataKeys[编号或者绑定的Key的名称]来获取.比如我在开始的时候设置GridView.DataKeyNames="id";那么等到所有数据绑定完成后,就可以用GridView.DataKeys["id"]来获取该行数据id的值了.如果gridview中的datakeynames只绑定了id,那么如果是用了gridview的自带的选择按键时,就可以用this.GridView1.SelectedDataKey.Value;它和this.gridview1.selectvalue效果是一样的,如果绑定了多个值,那么要想取选中行的某个关键值,就需用this.GridView1.SelectedDataKey.Values["id"].Tostring,而且 values[]中既可以放index序号,又可以放字段名,因为放字段名更容易理解。

获取和设置MasterPage中控件的值-叶翔-博客园

获取和设置MasterPage中控件的值-叶翔-博客园

获取和设置MasterPage中控件的值-叶翔-博客园获取和设置MasterPage 中控件的值Posted on 2007-03-12 22:19 叶翔阅读(681) 评论(0) 编辑收藏1、如果要获取母板页中的某一个控件的值,可以使用Master.FindControl() 方法。

母板页部分代码...<asp:Label ID="labNotice" runat="server" Text="Label001" ></asp:Label>...内容页中的部分code...Label myLabel=new Label();myLabel=(Label)Master.FindControl("labNotice");string myText=myLabel.Text;myText 的值就是"Label001"2、可以通过创建@MasterType 指令创建对此母板页的强类型饮用。

下面掩饰如何设置母板页中 Calendar控件的SelectedDate 属性的值。

首先在MasterPage.cs 中添加如下代码MasterPage.cs.../// <summary>/// mpCalendarDate 的摘要说明, 强命名MasterPage ,设置MasterPage 公共属性值/// </summary>public DateTime mpCalendarDate{get{return Calendar1.SelectedDate;}set{Calendar1.SelectedDate = value;}}...内容页.aspx <%@ Page Language="C#" MasterPageFile="~/MasterPage.master"AutoEventWireup="true" CodeFile="NewsListByDate.aspx.cs" Inherits="NewsListByDate" Title="Untitled Page" %> <%@ MasterType VirtualPath="~/MasterPage.master" %>...注意,内容页中添加一行:<%@ MasterType VirtualPath="~/MasterPage.master" %> 这就是强引用。

datagridview 用法

datagridview 用法

datagridview 用法DataGridView是Windows Forms中的控件,是一种可以显示数据的表格控件。

常用的DataGridView属性和方法:1. 属性:DataSource:设置或获取数据源。

2. 属性:AutoGenerateColumns:设置或获取是否自动生成列。

3. 属性:RowHeadersVisible:设置或获取是否显示行标题。

4. 方法:Refresh:刷新DataGridView控件的显示。

常用的DataGridView事件:1. 事件:RowValidating:当行数据验证时发生。

2. 事件:CellClick:单击单元格时发生。

3. 事件:CellDoubleClick:双击单元格时发生。

4. 事件:SelectionChanged:当选择项发生更改时发生。

DataGridView的使用步骤:1. 创建DataGridView实例。

2. 设置DataSource属性。

3. 可选设置AutoGenerateColumns属性。

4. 可选设置RowHeadersVisible属性及其他属性。

5. 注册事件处理程序。

6. 添加DataGridView到窗体中。

下面是一个简单示例代码:C#代码:csharpdataGridView1.DataSource = dataTable; dataTable为绑定数据源dataGridView1.AutoGenerateColumns = true;dataGridView1.RowHeadersVisible = false;dataGridView1.CellClick += DataGridView_CellClick;注:DataGridView_CellClick是事件处理程序的方法名,需要自行定义。

DataGridView单元格实现下拉和编辑功能设置代码

DataGridView单元格实现下拉和编辑功能设置代码

private ComboBox cmb_Temp = new ComboBox();public FormDB(){InitializeComponent();}///<summary>///绑定性别下拉列表框///</summary>private void BindSex(){DataTable dtSex = new DataTable();dtSex.Columns.Add("Value");dtSex.Columns.Add("Name");DataRow drSex;drSex = dtSex.NewRow();drSex[0] = "1";drSex[1] = "int";dtSex.Rows.Add(drSex);drSex = dtSex.NewRow();drSex[0] = "0";drSex[1] = "char(50)";dtSex.Rows.Add(drSex);cmb_Temp.ValueMember = "Value";cmb_Temp.DisplayMember = "Name";cmb_Temp.DataSource = dtSex;cmb_Temp.DropDownStyle = ComboBoxStyle.DropDownList; }private void FormDB_Load(object sender, EventArgs e){//实现行可编辑this.dgv_User.Rows[0].ReadOnly = false;// 绑定性别下拉列表框BindSex();//绑定数据表//BindData();//添加DataGridView中的行this.dgv_User.Rows.Add(1);//设置DataGridView为可编辑this.dgv_User.ReadOnly = false;//添加DataGridView中的列//this.dgv_User.Columns.Add(1);int i = Convert.ToInt32(this.tbnum.Text);// 设置下拉列表框不可见cmb_Temp.Visible = false;// 添加下拉列表框事件cmb_Temp.SelectedIndexChanged += new EventHandler(cmb_Temp_SelectedIndexChanged);// 将下拉列表框加入到DataGridView控件中this.dgv_User.Controls.Add(cmb_Temp);}// 当用户选择下拉列表框时改变DataGridView单元格的内容private void cmb_Temp_SelectedIndexChanged(object sender, EventArgs e){if (((ComboBox)sender).Text == "int"){dgv_User.CurrentCell.Value = "int";dgv_User.CurrentCell.Tag = "1";}else{dgv_User.CurrentCell.Value = "char(50)";dgv_User.CurrentCell.Tag = "0";}}// 滚动DataGridView时将下拉列表框设为不可见private void dgv_User_Scroll(object sender, ScrollEventArgs e){this.cmb_Temp.Visible = false;}// 改变DataGridView列宽时将下拉列表框设为不可见private void dgv_User_ColumnWidthChanged(object sender, DataGridViewColumnEventArgs e) {this.cmb_Temp.Visible = false;}//将datagridView的第二行绑定ComboBox控件实现下拉菜单功能private void dgv_User_CurrentCellChanged(object sender, EventArgs e){try{if (this.dgv_User.CurrentCell.RowIndex == 1){Rectangle rect =dgv_User.GetCellDisplayRectangle(dgv_User.CurrentCell.ColumnIndex,dgv_User.CurrentCell.RowIndex, false);cmb_Temp.Left = rect.Left;cmb_Temp.Top = rect.Top;cmb_Temp.Width = rect.Width;cmb_Temp.Height = rect.Height;cmb_Temp.Visible = true;}else{cmb_Temp.Visible = false;}}catch{}}private void dgv_User_CellMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e){this.dgv_User.Rows[e.RowIndex].Cells[e.ColumnIndex].ReadOnly = false;//将当前单元格设为可读this.dgv_User.CurrentCell =this.dgv_User.Rows[e.RowIndex].Cells[e.ColumnIndex];//获取当前单元格this.dgv_User.BeginEdit(true);//将单元格设为编辑状态}。

C#中DataGridView控件的各种操作总结(单元格操作,属性设置)

C#中DataGridView控件的各种操作总结(单元格操作,属性设置)

C#中DataGridView控件的各种操作总结(单元格操作,属性设置)⼀、单元格内容的操作*****// 取得当前单元格内容Console.WriteLine(DataGridView1.CurrentCell.Value);// 取得当前单元格的列 IndexConsole.WriteLine(DataGridView1.CurrentCell.ColumnIndex);// 取得当前单元格的⾏ IndexConsole.WriteLine(DataGridView1.CurrentCell.RowIndex);*******另外,使⽤ DataGridView.CurrentCellAddress 属性(⽽不是直接访问单元格)来确定单元格所在的⾏:DataGridView.CurrentCellAddress.Y 和列: DataGridView.CurrentCellAddress.X 。

这对于避免取消共享⾏的共享⾮常有⽤。

当前的单元格可以通过设定 DataGridView 对象的 CurrentCell 来改变。

可以通过 CurrentCell 来设定DataGridView 的激活单元格。

将 CurrentCell 设为 Nothing(null) 可以取消激活的单元格。

// 设定 (0, 0) 为当前单元格DataGridView1.CurrentCell = DataGridView1[0, 0];在整⾏选中模式开启时,你也可以通过 CurrentCell 来设定选定⾏。

/// <summary>/// 向下遍历/// </summary>/// <param ></param>/// <param ></param>private void button4_Click(object sender, EventArgs e)...{int row = this.dataGridView1.CurrentRow.Index + 1;if (row > this.dataGridView1.RowCount - 1)row = 0;this.dataGridView1.CurrentCell = this.dataGridView1[0, row];}/// <summary>/// 向上遍历/// </summary>/// <param ></param>/// <param ></param>private void button5_Click(object sender, EventArgs e)...{int row = this.dataGridView1.CurrentRow.Index - 1;if (row < 0)row = this.dataGridView1.RowCount - 1;this.dataGridView1.CurrentCell = this.dataGridView1[0, row];}* 注意: this.dataGridView 的索引器的参数是: columnIndex, rowIndex 或是 columnName, rowIndex这与习惯不同。

ASP习题库(含答案)

ASP习题库(含答案)

ASP习题库(含答案)一、单选题(共40题,每题1分,共40分)1、对FormView控件,通过该控件的任务按钮的“编辑模板”修改()可以给本控件增加标题。

A、ItemTemplateB、EditItemTemplateC、HeaderTemplateD、InsertItemTemplate正确答案:C2、下列能够执行Click()事件的控件是:A、LabelB、TextBoxC、ImageD、LinkButton正确答案:D3、sqlDataSource控件删除操作执行后引发的事件是A、DetelingB、DeletedC、UpdatingD、Updated正确答案:B4、sqlDataSource控件插入操作执行前引发的事件是A、InsertingB、InsertedC、DetelingD、Deleted正确答案:A5、Button控件常常用来A、接收用户输入的数据B、显示提示内容C、激发事件,提交网页D、链接到其他页面正确答案:C6、对FormView控件,如果只用于编辑数据,可以通过设置DefaultMode为:A、ReadOnlyB、EditC、为空D、Insert正确答案:B7、下列服务器控件中被单击时浏览器自动提交网页的按钮A、ButtonB、LinkButtonC、ImageButtonD、Image正确答案:A8、能设置过期时间的状态管理方式是()。

A、视图状态和应用程序状态B、应用程序状态和会话状态C、会话状态和Cookie状态D、Cookie状态和视图状态正确答案:C9、对FormView控件,用于更新数据,一般要给UpDate语句设置():A、无需设置B、一定的条件C、设置select语句D、Insert语句正确答案:B10、数据源控件的是A、SqlDataSourceB、GridViewC、FormViewD、Datalist正确答案:A11、关于GridView控件的标题行A、GridView控件的数据行的第0行B、没有行号,没有列号C、没有行号,有列号D、GridView控件的第1行正确答案:C12、HyperLink控件常常用来A、接收用户输入的数据B、显示提示内容C、激发事件,提交网页D、链接到其他页面正确答案:D13、对用户输入进行范围验证的控件是A、RequiredFieldValidatorB、RangeValidatorC、CompareValidatorD、RegularExpressionValidator正确答案:B14、要用CompareValidator控件验证用户输入是否小于0,不需要设置的属性是A、ControlToValidateB、ControlToCompareC、ValueToCompareD、Type正确答案:B15、GridView控件默认不具备的功能是:A、插入B、删除C、选择D、编辑正确答案:A16、sqlDataSource控件更新操作执行后引发的事件是A、UpdatingB、UpdatedC、SelectingD、Selected正确答案:B17、数据源控件条件查询的参数不可以直接来自A、QueryStringB、页面控件C、文件D、Session正确答案:C18、"对FormView控件,通过该控件的任务按钮的"编辑模板"修改()可以给本控件增加标题。

datagridtemplatecolumn自定义控件

datagridtemplatecolumn自定义控件

datagridtemplatecolumn自定义控件`datagridtemplatecolumn`是GridView控件的一个属性,它允许你在GridView的列中使用自定义的控件。

这个属性是一个模板列,你可以通过它为GridView的列定义一个自定义的控件模板。

这个模板将会被用于渲染GridView中的每一行数据。

要使用`datagridtemplatecolumn`,你需要先创建一个自定义的控件,然后在GridView的列配置中设置`datagridtemplatecolumn`属性为你的自定义控件的名称。

以下是一个简单的例子,演示如何在一个GridView中使用自定义的按钮控件:1. 首先,创建一个自定义的按钮控件。

在Visual Studio中,右键点击项目,选择“添加”->“新项”,然后创建一个名为“CustomButton”的新用户控件。

2. 接下来,修改CustomButton控件的代码,为它添加一个点击事件处理器。

例如:```csharpusing System;using System.Windows.Forms;namespace WindowsFormsApp1{public partial class CustomButton : UserControl{public CustomButton(){InitializeComponent();}private void CustomButton_Click(object sender, EventArgs e){MessageBox.Show("按钮被点击了!");}}}```3. 在GridView的列配置中,将`datagridtemplatecolumn`属性设置为自定义按钮控件的名称。

例如:```csharpusing System.Windows.Forms;namespace WindowsFormsApp1{public partial class Form1 : Form{public Form1(){InitializeComponent();}private void Form1_Load(object sender, EventArgs e){dataGridView1.Columns["Column1"].DataPropertyName = "Column1";dataGridView1.Columns["Column1"].DefaultCellTemplate = new DataGridTextBoxCell();dataGridView1.Columns["Column2"].DataPropertyName = "Column2";dataGridView1.Columns["Column2"].DefaultCellTemplate = new DataGridTemplateColumn(new CustomButton(), "CustomButton");}}public class CustomButton : DataGridTemplateColumn{public CustomButton(){CellTemplate = new DataGridButtonCell();HeaderText = "按钮列";}}}```在这个例子中,我们创建了一个名为CustomButton的自定义按钮控件,并在GridView的列配置中设置了`datagridtemplatecolumn`属性。

winform datagridview控件用法

winform datagridview控件用法

winform datagridview控件用法Winform DataGridView 控件用法详解一、简介Winform DataGridView 控件是 .NET Framework 中提供的一个强大的数据显示和编辑控件。

它可以显示和编辑多种类型的数据(如文本、数字、日期、图像等),并且提供了丰富的功能和灵活的样式设置,可以方便地实现数据的展示、排序、筛选、编辑、分页等操作。

二、绑定数据源1. 绑定数据集可以通过设置DataGridView 的DataSource 属性来绑定一个数据集(DataSet)或数据表(DataTable)。

在Visual Studio 的设计器中,通过选择数据源和数据成员来实现绑定,也可以通过代码实现。

例如:dataGridView1.DataSource = dataSet.Tables["TableName"];2. 绑定数据集合除了绑定数据集,还可以绑定数据集合(如List<T>、BindingList<T> 等)。

在数据集合发生变化时,DataGridView 会自动更新显示的数据。

例如:List<User> userList = new List<User>();dataGridView1.DataSource = userList;3. 动态绑定数据绑定数据源后,可以通过设置DataGridView 的AutoGenerateColumns 属性为true,自动根据数据源的结构创建列。

也可以通过手动添加列来控制显示的列数和顺序。

例如:dataGridView1.AutoGenerateColumns = true;三、设置列样式1. 自动调整列宽可以通过设置DataGridView 的AutoSizeColumnsMode 属性来调整列宽。

通常选择AllCells 或Fill,前者会根据列中的内容调整列宽,后者会填充整个控件。

总结ASPxGridView的使用

总结ASPxGridView的使用

虽然只是做非常小的一个图书管理系统,但由于使用了Devexpress的这个控件还是增加了不少难度的。

虽然控件是用来简化开发的,但是使用规则如果不清楚的话,要研究怎么使用,有点费时,当然这仅仅指第一次使用。

所以把我的经验记录一下,分享一下,算是自我总结吧。

1、首先是ASPxGridView的编辑和删除。

Aspx:<dxwgv:GridViewCommandColumn VisibleIndex="10"Caption="操作"><EditButton Visible="True"Text="编辑"></EditButton><DeleteButton Visible="True"Text="删除"></DeleteButton></dxwgv:GridViewCommandColumn>添加显示编辑删除按钮。

Cs:protected void grid_RowUpdating(object sender, DevExpress.Web.Data.ASPxDataUpdatingEventArgs e) //更新{string S_TSMC, S_TSFL, S_TSZZ, S_CFWZ, D_CBRQ, S_CBS, C_SL, C_JCSL;try{string S_ISBN = Convert.ToString(e.Keys[0]);if (e.NewValues["S_TSMC"] == null){S_TSMC = "";}else{S_TSMC = e.NewValues["S_TSMC"].ToString();//得到该字段的值,但需要必须判断是否是null。

C#superGridControl样式设置、加载数据、获取数据

C#superGridControl样式设置、加载数据、获取数据

C#superGridControl样式设置、加载数据、获取数据样式设置superGridControl1.PrimaryGrid.SelectionGranularity = SelectionGranularity.Cell; //设置选中样式单元格、整列、单元格和整列superGridControl1.PrimaryGrid.MultiSelect = false; //设置是否可以选中多⾏superGridControl1.PrimaryGrid.RowDragBehavior = RowDragBehavior.None;superGridControl1.PrimaryGrid.EnableCellMerging = true;superGridControl1.PrimaryGrid.ShowRowGridIndex = true;//显⽰⾏号superGridControl1.PrimaryGrid.AllowRowHeaderResize = true;//允许调整⾏头的宽度superGridControl1.PrimaryGrid.ShowRowHeaders = false; //不允许显⽰⾏头superGridControl1.PrimaryGrid.EnableFiltering = true; superGridControl1.PrimaryGrid.EnableColumnFiltering = true;//让列头显⽰筛选图标superGridControl1.PrimaryGrid.RowHeaderIndexOffset = 1;//设置⾏号的开始值this.superGridControl1.PrimaryGrid.Filter.Visible = true;//显⽰Filterthis.superGridControl1.PrimaryGrid.GroupByRow.Visible = true; //允许按列分组// GridPanel panel = superGridControl1.PrimaryGrid; panel.SetGroup(panel.Columns["Period"]);//使⽤分组SPG.PrimaryGrid.ShowRowGridIndex = false;//设置⾏号SPG.PrimaryGrid.SelectionGranularity = SelectionGranularity.Row;SPG.BackColor = Color.FromArgb(8, 47, 76);//设置控件的整个背景颜⾊不包含显⽰内容SPG.PrimaryGrid.DefaultVisualStyles.GridPanelStyle.Background.Color1 = Color.FromArgb(8, 47, 76);SPG.PrimaryGrid.DefaultRowHeight = 0;SPG.PrimaryGrid.ShowRowHeaders = false;SPG.PrimaryGrid.AllowEdit = false;SPG.DefaultVisualStyles.ColumnHeaderStyles.Default.Background.Color1 = Color.FromArgb(8, 47, 76);//设置背景颜⾊紧紧加载的内容SPG.DefaultVisualStyles.ColumnHeaderStyles.Default.Background.Color2 = Color.FromArgb(8, 47, 76);//设置背景颜⾊紧紧加载的内容SPG.DefaultVisualStyles.ColumnHeaderStyles.Default.TextColor = Color.White; SPG.DefaultVisualStyles.CellStyles.Default.Alignment = DevComponents.DotNetBar.SuperGrid.Style.Alignment.MiddleCenter;//设置列头⽂字居中问题加载数据未设置列的情况下直接绑定数据源DataRow DR = DTS.NewRow();DR["调研代码"] = "1";DR["调研序列"] = "2";DR["调研维度"] = "3";DR["维度说明"] = "4";DR["核算单元1"] = "5";DR["核算单元2"] = "6";DTS.Rows.Add(DR);superGridControl1.PrimaryGrid.DataSource = DTS;当然在绑定列的情况下如下也可以绑定数据源GridColumn col = new GridColumn();col = new GridColumn(); = "调研代码";col.HeaderText = "调研代码";col.EditorType = typeof(GridLabelXEditControl);col.FilterMatchType = FilterMatchType.RegularExpressions;col.CellMergeMode = CellMergeMode.None;col.AutoSizeMode = ColumnAutoSizeMode.None;col.Visible = false;superGridControl1.PrimaryGrid.Columns.Add(col);col = new GridColumn(); = "调研序列";col.HeaderText = "调研序列";col.EditorType = typeof(GridLabelXEditControl);col.FilterMatchType = FilterMatchType.RegularExpressions;col.CellMergeMode = CellMergeMode.None;col.AutoSizeMode = ColumnAutoSizeMode.None;superGridControl1.PrimaryGrid.Columns.Add(col);col = new GridColumn(); = "调研维度";col.HeaderText = "调研维度";col.EditorType = typeof(GridLabelXEditControl);col.FilterMatchType = FilterMatchType.RegularExpressions;col.CellMergeMode = CellMergeMode.None;col.AutoSizeMode = ColumnAutoSizeMode.None;superGridControl1.PrimaryGrid.Columns.Add(col);col = new GridColumn(); = "维度说明";col.HeaderText = "维度说明";col.EditorType = typeof(GridLabelXEditControl);col.FilterMatchType = FilterMatchType.RegularExpressions;col.CellMergeMode = CellMergeMode.None;col.AutoSizeMode = ColumnAutoSizeMode.None;superGridControl1.PrimaryGrid.Columns.Add(col);col = new GridColumn(); = "核算单元1";col.HeaderText = "核算单元1";col.EditorType = typeof(GridLabelXEditControl);col.FilterMatchType = FilterMatchType.RegularExpressions;col.CellMergeMode = CellMergeMode.None;col.AutoSizeMode = ColumnAutoSizeMode.None;superGridControl1.PrimaryGrid.Columns.Add(col);col = new GridColumn(); = "核算单元2";col.HeaderText = "核算单元2";col.EditorType = typeof(GridLabelXEditControl);col.FilterMatchType = FilterMatchType.RegularExpressions;col.CellMergeMode = CellMergeMode.None;col.AutoSizeMode = ColumnAutoSizeMode.None;superGridControl1.PrimaryGrid.Columns.Add(col);//⼀⾏⾏加载并设置样式(这种⽅法⽐较灵活)if (DTmain.Rows.Count > 0){GridRow gr = null;foreach (DataRow dr in DTmain.Rows){gr = new GridRow(new object[] {(dr["操作名称"]??"").ToString().Trim(),(dr["反馈消息"]??"").ToString().Trim(),(dr["导⼊条数"]??"").ToString().Trim(),(dr["导⼊时间段起"]??"").ToString().Trim(),(dr["导⼊时间段⽌"]??"").ToString().Trim(),(dr["⽇志添加时间"]??"").ToString().Trim()});gr.CellStyles.Default.Font = new Font("微软雅⿊", 11);gr.CellStyles.Default.TextColor = Color.White;SPG.PrimaryGrid.Rows.Add(gr);}}supergridcontrol 样式附加SPG.DefaultVisualStyles.ColumnHeaderStyles.Default.Background.Color1 = Color.FromArgb(8, 47, 76); //设置列的背景颜⾊SPG.DefaultVisualStyles.CellStyles.Default.Alignment = DevComponents.DotNetBar.SuperGrid.Style.Alignment.MiddleCenter //设置单元格⽂本居中SPG.DefaultVisualStyles.CellStyles.Default.AllowWrap = Tbool.True;//可⾃动换⾏SPG.DefaultVisualStyles.CellStyles.Selected.AllowWrap = Tbool.True;注意:设置单元格的相关属性⼀般CellStyles,⾏样式⽤rowStylesupergridcontrol 在样式上同⽐其他的控件更加美观,但是在加载速度上不如datageidview 该控件在追求样式的时候丢失了数据加载速度。

DevExpress使用教程:GridView经验小结(官方中文文献经典资料技巧)

DevExpress使用教程:GridView经验小结(官方中文文献经典资料技巧)

DevExpress使⽤教程:GridView经验⼩结(官⽅中⽂⽂献经典资料技巧)下⾯是笔者⾃⼰总结的使⽤ DevExpress Gridview 的⼀些经验⼩结,分享给⼤家:1、去除 GridView 头上的 "Drag a column header here to group by that column"--> 点击 Run Designer -> 找到:OptionView -> 将 ShowGroupPanel :设置为 false ;2、如何显⽰出 GridView ⾃带的搜索功能--> 点击 Run Designer -> 找到: OptionsFind -> 将AlwaysVisible :设置为 True3、如何将GridView的⼤⼩⾃适应窗体的⼤⼩--> 右键 GridView 控件 -> 属性 -> 找到 Dock :设置为 Fill4、当GridView数据源发⽣变化时,如何更改GridView所"绑定的值"Code注:其实就是重新创建了⼀个GridView的实例。

gridView1 = new DevExpress.XtraGrid.Views.Grid.GridView(gridControl1);gridControl1.MainView = gridView1;gridView1.OptionsView.ShowGroupPanel = false;gridView1.OptionsFind.AlwaysVisible = true;gridControl1.DataSource = dt;5、在GridControl 中添加checkbox复选框--> gridView -> run designer -> columns -> 添加⼀列(如果没有的话) 然后如图设置-- > 另外当我们需要动态绑定grid数据时,DataTable 中列的名字要和我们在gridview中设置的FileName名字要移植,不然数据是显⽰不出来的。

asp.netDataGridGridView表格之选中行与获取选中行数据

asp.netDataGridGridView表格之选中行与获取选中行数据

DataGridGridView表格之选中⾏与获取选中⾏数据⼀、GridView 表格之选中⾏选中⾏的功能最初以为只能通过属性中AllowGenerateSelectButton(运⾏时是否⾃动⽣成选择按钮)来实现,需要点击⽣成的选择按钮来操作,但这样使⽤并是很⽅便。

经寻找找到了改进办法如下效果⿏标经过时背景⾊会改变,选中后可获取响应⾏的数据实现⽅法如下:⾸先前台设计属性框中事件绑定RowDataBound(在对时局进⾏了绑定后激发)事件后台代码如下:///<summary>///在对数据进⾏了绑定后激发///主要实现⿏标点击时选中该⾏///</summary>///<param name="sender"></param>///<param name="e"></param>protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e){#region⽅法0 存在bug 暂未改进供参考//e.Row.Attributes["style"] = "cursor:hand";//PostBackOptions myPostBackOptions = new PostBackOptions(this);//myPostBackOptions.AutoPostBack = false;//myPostBackOptions.PerformValidation = false;//myPostBackOptions.RequiresJavaScriptProtocol = true; //加⼊javascript:头//String evt = Page.ClientScript.GetPostBackClientHyperlink(sender as GridView, "Select$" + e.Row.RowIndex.ToString());//e.Row.Attributes.Add("onclick", evt);#endregion#region⽅法1//if (e.Row.RowType == DataControlRowType.DataRow)//{// e.Row.Attributes.Add("onClick", "__doPostBack('" + GridView1.UniqueID + "','Select$" + e.Row.RowIndex + "');");//此处为两个“_” //}#endregion#region⽅法2int i;for (i = 0; i <= GridView1.Rows.Count; i++){//⾸先判断是否是数据⾏if (e.Row.RowType == DataControlRowType.DataRow){//当⿏标停留时更改背景⾊e.Row.Attributes.Add("onmouseover", "c=this.style.backgroundColor;this.style.backgroundColor='#00A9FF'");//当⿏标移开时还原背景⾊e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor=c");//单击⾏的任意列会⾃动选中此⾏e.Row.Attributes.Add("onclick", "__doPostBack('GridView1','Select$" + e.Row.RowIndex + "')");}}#endregion⼆、获取选中⾏数据选中某⾏后获取数据在属性框中事件选项中选择设置SelectedIndexChanged(在GridView中选择⾏时,在该⾏选择完成后激发)事件选项后台代码如下///<summary>///选择某⾏时在最左侧更新显⽰数据详细///在DataGriew选择⾏时,在该选择操作完成后激发///</summary>///<param name="sender"></param>///<param name="e"></param>protected void GridView1_SelectedIndexChanged(object sender, EventArgs e){if (GridView1.SelectedIndex >= 0){ClearTreeNodeChecked(TreeView1.Nodes);txtName.Text = GridView1.SelectedRow.Cells[0].Text;txtPhone.Text = GridView1.SelectedRow.Cells[1].Text;txtSendTime.Text = GridView1.SelectedRow.Cells[2].Text;GetUserNodes();}}如果单独设置了修改或删除按钮,选中某⾏后,点击这些按钮来处理数据,可通过定义⼀些页⾯属性来保存当前⾏选中的列数据,在每次选中⾏改变SelectedIndexChanged事件中更改这些定义的表⽰⾏列数据的属性,然后利⽤这些列数据进⾏操作⾸先定义页⾯属性///<summary>///选中⾏的代码列///</summary>private static string Code = "";///<summary>///选中⾏的名字列///</summary>private static string Name = "";///<summary>///选中⾏的描述列///</summary>private static string Descripe = "";在每次选中⾏触发SelectedIndexChanged事件时更改这些属性的值///<summary>///⾏选择操作完成后激发///</summary>///<param name="sender"></param>///<param name="e"></param>protected void grdQualityDoorAndParts_SelectedIndexChanged(object sender, EventArgs e){//当选中⾏时if (grdQualityDoorAndParts.SelectedIndex >= 0){btnEdit.Enabled = true;//启⽤编辑按钮btnDelete.Enabled = true;//启⽤删除按钮Code = grdQualityDoorAndParts.SelectedRow.Cells[0].Text.Trim().ToString() == "&nbsp;" ? "" : grdQualityDoorAndParts.SelectedRow.Cells[0].Text.Trim().ToString();Name = grdQualityDoorAndParts.SelectedRow.Cells[1].Text.Trim().ToString() == "&nbsp;" ? "" : grdQualityDoorAndParts.SelectedRow.Cells[1].Text.Trim().ToString(); Descripe = grdQualityDoorAndParts.SelectedRow.Cells[2].Text.Trim().ToString() == "&nbsp;" ? "" : grdQualityDoorAndParts.SelectedRow.Cells[2].Text.Trim().ToString();//给编辑按钮添加点击事件,跳转到编辑页⾯,并传值过去(在这⾥将名称列的值传给编辑界⾯)string url1 = "Edit.aspx/?Name=" + Name;btnEdit.Attributes.Add("onclick", "window.showModalDialog('" + url1 + "',window,'dialogHeight:550px;dialogWidth:800px'); return false;");}else{btnEdit.Enabled = false;//启⽤编辑按钮btnDelete.Enabled = false;//启⽤删除按钮}}。

GridView1 删除、修改(字段类型全而且用GridView集成处理)

GridView1 删除、修改(字段类型全而且用GridView集成处理)

张家口教育学院教育技术中心 第 1 页 共 21 页删除、修改记录(字段类型全、GridView 集成处理、双向排序、翻页、绑定列)2010.10.30学习内容:TemplatedField 模板列技术、使用绑定列技术、鼠标所在行颜色提示、绑定列中使用下拉列表框、设置字段的ControlStyle 属性运行态1. 在VS2008中建立Web项目。

2. 在Windows环境下将数据库jyxystu.mdf(命名含义为教育学院学生)和jyxystu.ldf拷贝到项目的App_Data目录下,并在VS中添加的项目中。

张家口教育学院教育技术中心第2 页共21 页3. 在SQL Server 2000中附加数据库jyxystu.mdf。

4. 在数据库中建立一个表:tb_zg(命名含义为职工表,以tb开头意思是本对象是一个表),表结构如下:5. 录入若干条记录(为了看出效果,记录数至少20条)6. 修改web.config文件,(1) 删除</configSections>下方的<appSettings/>(2) 在</configSections>位置下增加:张家口教育学院教育技术中心第3 页共21 页<appSettings><add key="ConnStr" value="Server=localhost;uid=sa;pwd=;database=jyxystu"></add>7. 在项目中添加Web窗体mygridview.aspx(文件名含义为按类查询)8. 布局控件如下:一个GridView,在GridView下方有两个label,准备显示第x页共y页。

ID属性分别是Label1和Label2。

GridView1自动套用格式为"雪松"。

AutoGenerateColumns="False"AllowSorting="True"AllowPaging="True"PageSize="10"因为要采用分页技术所以需要再设置PagerSettings属性FirstPageText="首页"LastPageText="尾页"NextPageText="下一页"PreviousPageText="上一页"Mode="NextPreviousFirstLast"把GridView中的FontSize设为small。

excel获取控件多选内容的方法

excel获取控件多选内容的方法

excel获取控件多选内容的方法Excel提供了多种方法来获取控件多选内容。

下面将详细介绍这些方法,并且按照条理清晰的顺序进行说明。

方法一:使用复选框控件1.在Excel工作表上插入复选框控件。

选择"开发工具"选项卡,然后在"控件"组中选择"复选框"控件。

鼠标拖动选定复选框的位置和大小。

2.右键单击复选框,选择"属性"。

在属性窗口中,找到"值"选项,并为复选框设置一个唯一的值。

这个值将在VBA代码中用来判断复选框是否被选中。

3.创建一个事件处理程序来获取复选框的选中状态。

在控件所在的工作表的VBA编辑器中,选择"复选框"来定义事件。

然后,输入以下代码:```Private Sub CheckBox1_Click()If CheckBox1.Value = True Then'复选框被选中'在这里编写处理选中状态的代码Else'复选框未被选中'在这里编写处理未选中状态的代码End IfEnd Sub```4.在事件处理程序中,根据复选框的选中状态执行相应的操作。

例如,可以使用`MsgBox`函数来显示消息框,或者将选中的值写入其他单元格。

方法二:使用下拉列表控件1.在Excel工作表上插入下拉列表控件。

选择"开发工具"选项卡,然后在"控件"组中选择"下拉列表框"控件。

鼠标拖动选定下拉列表的位置和大小。

2.右键单击下拉列表,选择"属性"。

在属性窗口中,找到"下拉值"选项,并在"列表项"框中输入所有可选项的值,每个值用逗号分隔。

3.创建一个事件处理程序来获取下拉列表的选中内容。

在控件所在的工作表的VBA编辑器中,选择"下拉列表框"来定义事件。

datagridview单元格间计算

datagridview单元格间计算

datagridview单元格间计算随着信息化技术的不断发展,数据处理和分析已经成为许多行业和企业必不可少的工作。

在这个过程中,datagridview作为一种常见的数据展示和编辑工具,被广泛应用于各种应用程序中。

在datagridview 中进行单元格间的计算,可以帮助用户快速准确地进行数据分析和处理,提高工作效率。

一、datagridview的基本概念和用途1. datagridview是Windows窗体应用程序中常用的数据展示和编辑控件,它可以展示和编辑数据表格,支持各种数据类型的显示和编辑。

2. datagridview的用途广泛,可以用于各种需要展示和编辑数据的场景,比如企业管理系统、金融软件、科研数据分析等。

3. datagridview提供了丰富的属性和方法,可以灵活地控制数据的展示和编辑,为用户提供便利的数据处理方式。

二、datagridview单元格间的计算方法1. 简单的单元格值计算在datagridview中进行单元格值的计算可以通过获取对应单元格的数值,然后进行加减乘除等基本运算来实现。

可以通过遍历datagridview中的单元格,获取相应的数值,然后进行计算,最后将结果显示在指定的单元格中。

2. 复杂的单元格间的计算在一些复杂的数据处理场景中,可能需要进行单元格间的复杂计算,比如多个单元格的累加、平均值计算等。

这时可以借助datagridview 提供的事件,比如CellEndEdit事件,来实时获取单元格的数值变化,并进行相应的计算。

3. 使用自定义函数进行单元格间计算为了提高代码的重用性和可维护性,可以将单元格间的计算逻辑封装为自定义函数,然后在相应的事件中调用这些函数来实现单元格间的计算。

这样可以让代码更加清晰简洁,并且方便日后的维护和扩展。

三、datagridview单元格间计算的注意事项1. 数据类型的处理在进行datagridview单元格间的计算时,需要注意数据类型的处理,确保计算的准确性和可靠性。

excel获取控件内容的方法

excel获取控件内容的方法

excel获取控件内容的方法
在Excel中,有几种方法可以获取控件内容。

下面是一些常用的方法。

1.使用公式:
公式是Excel中最常用的方法之一,可以使用公式来获取控件内容。

首先,你需要确保控件已经正确设置,并且嵌入到了目标单元格中。

然后,你可以在其他单元格中使用公式来引用该控件。

例如,如果控件位于B2
单元格,你可以在其他单元格中使用公式`=B2`来获取控件内容。

2.使用宏:
3.使用事件处理程序:
4. 使用ActiveX控件:
Excel还支持ActiveX控件,这些控件提供了更多的功能和自定义选项。

你可以通过菜单栏的“开发”选项卡,在工具箱中找到ActiveX控件。

选择一个控件并将其嵌入到目标单元格中。

然后,通过右击控件并选择
“属性”,你可以访问控件的属性窗口。

在窗口中,你可以找到一个名为“Value”的属性,该属性保存了控件的内容。

你可以使用VBA或公式来
引用该属性,并获取控件内容。

5.使用用户定义函数:
这些是在Excel中获取控件内容的一些常用方法。

你可以根据具体的
需求和场景选择最合适的方法来实现。

无论是使用公式、宏、事件处理程序、ActiveX控件还是用户定义函数,都能帮助你获取控件内容,提高工
作效率。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

关于((TextBox)(GridView1.Rows[e.RowIndex].Cells[1].Controls[1])).Text.ToString()
和((Label)(GridView1.Rows[e.RowIndex].Cells[1].Controls[0])).Text.ToString()
的区别
在GRIDVIEW设计器那里,编辑模板,发现它有五个template:
●ItemTemplate-----常态模板
●AlternatingItemplate-----交互变换模板
●EditItemplate---------编辑状态模板
●HeaderTemplate------头文本模板
●FooterTemplate-----脚文本模板
其中前三项是与rows[].cells[]中的controls有关的。

因为ItemTemplate 、AlternatingItemplate、EditItemplate 这三个模板是放在同一个单元格内的,所以这三个模板的所有控件同属于一个controls 集。

并且它们的索引的优先顺序就是1.ItemTemplat 2.AlternatingItemplate 3.EditItemplate。

一般情况下,在ItemTemplate有一个label控件,AlternatingItemplate 没有控件。

在EditTemplate中有一个TextBox控件。

于是Controls集内有两个控件:Label排行第一,索引为0,TextBox排第二,索引为1。

于是在获取编辑模板的值时用:
((TextBox)(GridView1.Rows[e.RowIndex].Cells[1].Controls[1])).Text.ToString() 在使用boundfield字段时,内容的显示不是以label控件形式表示,而是直接非控件形式表示,boundfield字段只有在编辑状态下才使用TextBox控件。

所以,它使用GridView1.Rows[e.RowIndex].Cells[1].Controls[0]来表示,编辑状
态时的TextBox控件。

而对于由boundfield字段转成的Itemtemplate字段,它将内容以label控件的形式来显示,于是Controls[0]是表示这个在非编辑状态下的label控件,而不是编辑状态下的TextBox控件。

对于itemtemplate 来说,每个单元格内的三种状态模板,只在对应的状态下它的visible才是true其它状态下都是false;这样的最终效果是,编译后,在网页上有些控件是不存在了,但是这不代表那些在网页上不存在的元素,在服务器端,它就不存在的,它在服务器端,是存在的,只是看不见而已。

所以,这也是为什么.net要引入controls这个集合的重要原因之一吧?(。

相关文档
最新文档