checkbox列,怎么添加到datatable中

checkbox列,怎么添加到datatable中,第1张

<rich:dataTable id="carList" width="555px" rows="#{usr.pageSize}" value="#{usr.dataList}" var="car"

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="电子灵魂"


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11264072.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存