rowClasses="dataListRow1, dataListRow2" rowKeyVar="row">
<f:facet name="header">
<rich:columnGroup>
<h:column>
<h:selectBooleanCheckbox id="all" onclick="selectAll(#{usr.scrollerPage},#{usr.pageSize})"/>
</h:column>
<h:column>
<h:outputText styleClass="headerText" value="RowNum" />
</h:column>
<h:column>
<h:outputText styleClass="headerText" value="Name" />
</h:column>
<h:column>
<h:outputText styleClass="headerText" value="Decription" />
</h:column>
<h:column>
<h:outputText styleClass="headerText" value="Base Price" />
</h:column>
<h:column>
<h:outputText styleClass="headerText" value=" *** 作" />
</h:column>
</rich:columnGroup>
</f:facet>
<h:column>
<h:selectBooleanCheckbox id="cbox" value="#{car.checked}"/>
</h:column>
<h:column>
<h:outputText value="#{row}" />
</h:column>
<h:column>
<h:outputText value="#{car.name}" />
</h:column>
<h:column>
<h:outputText value="#{car.description}" />
</h:column>
<h:column>
<h:outputText value="#{car.baseprice}" />
</h:column>
<h:column>
<h:commandLink action="#{usr.delete}" value="删除" >
<f:param name="id" value="#{car.id}"/>
</h:commandLink>
</h:column>
</rich:dataTable>
<rich:datascroller for="carList" id="dc1" style="width:480px" page="#{usr.scrollerPage}" onclick="antiSelect()" reRender="formlist"/>
这里的关键问题是全选。经过google和自己的摸索,总结如下:
Html代码
onclick="selectAll(当前分页序号,每页多少条记录)"
注意:
如果使用xhtml,js代码请写入独立文件并在页面中引入:
Java代码
<a4j:loadScript src="${pageContext.request.contextPath}/scripts/directory.js" />
否则,直接写在xhtml页面,会报错:
The content of elements must consist of well-formed character data or markup
原因我不确知,可能是xhtml解析问题。
js代码如下
Js代码
function selectAll(page,size) {
var checkAll=document.getElementById('formlist:carList:all').checked
for(var i=0i<=10i++){
var seq = (page-1)* size + i
var checkBox = document.getElementById('formlist:carList:'+seq+':cbox')//formlist:carList:0:cbox
//alert("checkAll="+checkAll)
//alert("page="+page+" size="+size+" i="+i+" seq="+seq)
if(checkAll)
checkBox.checked=true
else
checkBox.checked=false
}
}
function antiSelect(){
document.getElementById('formlist:carList:all').checked=false
}
此前,我google的代码如下,在该死的ie下不能执行。为此,我扣了半天行号问题。
Js代码
function selectAll() {
var rows = document.getElementById('formlist:carList').rows
var currentState = rows[0].cells[0].childNodes[0].checked
var i
for (i in rows) {
i++
if (currentState) {
rows[i].cells[0].childNodes[0].checked=true
} else if (!currentState) {
rows[i].cells[0].childNodes[0].checked=false
}
}
}
// 变量DataTable dtable =new DataTable()//中间接收表
DataRow row //定义行
变量dt 为DatagridView1的数据源
事件代码
Button_Click事件中代码
dtable = dt.Clone()//先让中间表数据列DatagridView1的表的数据列相同
foreach (DataGridViewRow Row in dataGridView1.Rows) //DataGridView全部行
{
//判断是否选中
if (Row.Cells["Checked"].Value!= null &&(bool)Row.Cells["Checked"].Value!= false)
{
// ["Checked"]为勾选列的列名
DataRowView drv = Row.DataBoundItem as DataRowView//获取行中所有数据
row = (DataRow)drv.Row//将dgv行中数据添加到定义行中
dtable.Rows.Add(row.ItemArray)//添加就可以了。
}
else
{
continue//继续找
}
}
dataGridView2.DataSource = dtable//最后绑定就行了
看看是不是你想要的。如果是就给分,不是的话 咱们还可以再加鈡嘛。
一、如何解决单击记录整行选中的问题View->OptionsBehavior->EditorShowMode 设置为:Click
二、如何新增一条记录
(1)、gridView.AddNewRow()
(2)、实现gridView_InitNewRow事件
三、如何解决GridControl记录能获取而没有显示出来的问题
gridView.populateColumns()
四、如何让行只能选择而不能编辑(或编辑某一单元格)
(1)、View->OptionsBehavior->EditorShowMode 设置为:Click
(2)、View->OptionsBehavior->Editable 设置为:false
五、如何禁用GridControl中单击列d出右键菜单
设置Run Design->OptionsMenu->EnableColumnMenu 设置为:false
1、gridControl如何去掉主面板?
鼠标右键Run Designer=》OptionsView =》 ShowGroupPanel=False;
2、gridControl如何设置列自动宽度?
鼠标右键Run Designer=》OptionsView=》ColumnAutoWidth=True;
3、gridControl如何设置单元格不可编辑?
鼠标右键Run Designer=》OptionsBehavior 》Editable=False;
4.修改最上面的GroupPanel内容
gridView1.GroupPanelText=”盼盼”
获得选中了多少行?
1、 如何解决单击记录整行选中的问题
View->OptionsBehavior->EditorShowMode 设置为:Click
2、 如何新增一条记录
(1)、gridView.AddNewRow()
(2)、实现 gridView_InitNewRow 事件
3、如何解决 GridControl 记录能获取而没有显示出来的问题
gridView.populateColumns()
4、如何让行只能选择而不能编辑(或编辑某一单元格)
(1)、View->OptionsBehavior->EditorShowMode 设置为:Click
(2)、View->OptionsBehavior->Editable 设置为:false
5、如何禁用 GridControl 中单击列d出右键菜单
设置 Run Design->OptionsMenu->EnableColumnMenu 设置为:false
6、如何隐藏 GridControl 的 GroupPanel 表头
设置 Run Design->OptionsView->ShowGroupPanel 设置为:false
7、如何禁用 GridControl 中列头的过滤器 过滤器如下图所示:
设置 Run Design->OptionsCustomization->AllowFilter 设置为:false
8、如何在查询得到 0 条记录时显示自定义的字符提示/显示 如图所示:
方法如下:
//When no Records Are Being Displayed
private void gridView1_CustomDrawEmptyForeground(object sender, CustomDrawEventArgs e)
{
//方法一(此方法为GridView设置了数据源绑定时,可用)
ColumnView columnView = sender as ColumnView
BindingSource bindingSource = this.gridView1.DataSource as BindingSource
if(bindingSource.Count == 0)
{
string str = "没有查询到你所想要的数据!"
Font f = new Font("宋体", 10, FontStyle.Bold)
Rectangle r = new Rectangle(e.Bounds.Top + 5, e.Bounds.Left + 5, e.Bounds.Right - 5, e.Bounds.Height - 5)
e.Graphics.DrawString(str, f, Brushes.Black, r)}
//方法二(此方法为GridView没有设置数据源绑定时,使用,一般使用此种方 法)
if (this._flag)
{ if (this.gridView1.RowCount == 0)
{ string str = "没有查询到你所想要的数据!"Font f = new Font("宋体", 10, FontStyle.Bold)
Rectangle r = new Rectangle(e.Bounds.Left + 5, e.Bounds.Top + 5, e.Bounds.Width - 5, e.Bounds.Height - 5)
e.Graphics.DrawString(str, f, Brushes.Black, r)} } }
六、如何隐藏GridControl的GroupPanel表头
设置Run Design->OptionsView->ShowGroupPanel 设置为:false
七、如何禁用GridControl中列头的过滤器
过滤器如下图所示:
DevExpress GridControl使用方法总结
设置 Run Design->OptionsCustomization->AllowFilter 设置为:false
八、如何在查询得到0条记录时显示自定义的字符提示/显示
如图所示:
DevExpress GridControl使用方法总结
方法如下:
//When no Records Are Being Displayed
private void gridView1_CustomDrawEmptyForeground(object sender, CustomDrawEventArgs e)
{
//方法一(此方法为GridView设置了数据源绑定时,可用)
ColumnView columnView = sender as ColumnView
BindingSource bindingSource = this.gridView1.DataSource as BindingSource
if(bindingSource.Count == 0)
{
string str = "没有查询到你所想要的数据!"
Font f = new Font("宋体", 10, FontStyle.Bold)
Rectangle r = new Rectangle(e.Bounds.Top + 5, e.Bounds.Left + 5, e.Bounds.Right - 5, e.Bounds.Height - 5)
e.Graphics.DrawString(str, f, Brushes.Black, r)
}
//方法二(此方法为GridView没有设置数据源绑定时,使用,一般使用此种方法)
if (this._flag)
{
if (this.gridView1.RowCount == 0)
{
string str = "没有查询到你所想要的数据!"
Font f = new Font("宋体", 10, FontStyle.Bold)
Rectangle r = new Rectangle(e.Bounds.Left + 5, e.Bounds.Top + 5, e.Bounds.Width - 5, e.Bounds.Height - 5)
e.Graphics.DrawString(str, f, Brushes.Black, r)
}
}
}
九、如何显示水平滚动条?
设置this.gridView.OptionsView.ColumnAutoWidth = false
十、如何定位到第一条数据/记录?
设置 this.gridView.MoveFirst()
十一、如何定位到下一条数据/记录?
设置 this.gridView.MoveNext()
十二、如何定位到最后一条数据/记录?
设置 this.gridView.MoveLast()
十三、设置成一次选择一行,并且不能被编辑
this.gridView1.FocusRectStyle = DevExpress.XtraGrid.Views.Grid.DrawFocusRectStyle.RowFocus
this.gridView1.OptionsBehavior.Editable = false
this.gridView1.OptionsSelection.EnableAppearanceFocusedCell = false
十四、如何显示行号?
this.gridView1.IndicatorWidth = 40
//显示行的序号
private void gridView1_CustomDrawRowIndicator(object sender, RowIndicatorCustomDrawEventArgs e)
{
if (e.Info.IsRowIndicator &&e.RowHandle>=0)
{
e.Info.DisplayText = (e.RowHandle + 1).ToString()
}
}
十五、如何让各列头禁止移动?
设置gridView1.OptionsCustomization.AllowColumnMoving = false
十六、如何让各列头禁止排序?
设置gridView1.OptionsCustomization.AllowSort = false
十七、如何禁止各列头改变列宽?
设置gridView1.OptionsCustomization.AllowColumnResizing = false
Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONE
DEV控件:gridControl常用属性设置
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="电子灵魂"
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)