[高分求助]第三方控件GridControl中的ComboBox和CheckBox

mizuho_2006 2012-02-20 04:37:52
我要实现这样的效果
查询出结果后允许管理员修改。
选中的记录可以删除,因此在每行上添加CheckBox控件,我的代码是

<dxg:GridColumn Name="gridColumn1" Header="选择" Width="40" AllowEditing="true">
<dxg:GridColumn.EditSettings>
<dxe:CheckEditSettings ClickMode="Release"/>
</dxg:GridColumn.EditSettings>
</dxg:GridColumn>

运行效果图为

我想在搜索出结果时默认是都不选择的(而且可以多选),但是现在的效果是都选着的,而且不是用对勾选的。ClickMode的三种模式我都试过,没有我想要的效果。

还有另一个页面允许管理员修改页面的访问权限。我在一个GridView里显示出所有页面的访问权限,由管理员修改。我写的代码是

<dxg:GridColumn Name="colFrameRole" FieldName="role" Header="访问权限" AllowEditing="true">
<dxg:GridColumn.EditSettings>
<dxe:ComboBoxEditSettings Width="100"/>
</dxg:GridColumn.EditSettings>
</dxg:GridColumn>

运行效果如下

但是这样做只会在下拉框里显示当前页面的访问权限,虽然可以手工修改,可我想做成可以下拉选择的效果。而且要一查询出来的时候每行的comboBox中的值是当前行页面的权限。比如第一行A页面的访问权限是alluser,第二行B页面的访问权限是admin,查询出来的时候两个comboBox里显示的不一样才行。
...全文
370 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
mizuho_2006 2012-02-21
  • 打赏
  • 举报
回复
回复8L的朋友,我又弄了好久还是没整好。
mizuho_2006 2012-02-21
  • 打赏
  • 举报
回复
我明白为什么CheckBox里显示不正确了,因为没有给它设置bool值的数据源。
但是我数据库表里没有这个表示是否选择状态的字段,我试着在实体上自己加了一个自定义字段
public bool ISSELECTED
{get;set;}
结果用的时候点不出来

应该怎么给CheckBox设置数据源呢,前提是不修改数据库表结构。
wwwljh 2012-02-20
  • 打赏
  • 举报
回复
具体怎么给这个ComboBox绑定那就不知道了。
正常情况下。把数据集设置给itemsource属性,然后再定义DisplayMemberPath和SelectedValueMemberPath就可以了。比如下接列表中的值为{1,2,3,4,5}绑定给ComboBox,你再次为GridColumn列绑定role字段的时候。就会按role字段中的值显示相应的内容了。
不管用的MS的控件还是第三方。思路和方法应该是不会变的。
给你推荐个第三方的控件:RadControls For Silverlight
mizuho_2006 2012-02-20
  • 打赏
  • 举报
回复
GRID里的COMBOBOX没有displaymemberpath属性
<dxe:ComboBoxEditSettings x:Name="cmbGridFrameRole" Width="100"/>
只能设置itemsource属性

但设置后显示没有任何变化。我想要的是数据表里是什么就显示什么,也就是说现在的效果显示是正确的,只是不能在下拉框里修改权限值,必须手动修改,和不用下拉框效果一样的。不然一查出来默认都成了你设置数据源的查询查出的第一个权限了。
wwwljh 2012-02-20
  • 打赏
  • 举报
回复
这个控件没有用过。你应该先给comboBox绑定数据源(下接列表中的所有内容)。然后再给Grid绑定数据源。你光给Grid绑定肯定就只会显示对应的内容。不会有comboBox下接列表。你可以试着把数据中的数据绑定在一个comboBox控件上。试一下方法和效果。
mizuho_2006 2012-02-20
  • 打赏
  • 举报
回复
我用的DXperienceUniversal-10.2.4。
我是在后台C#代码中给整个GridControl设置数据源,在前台XAML中给每列绑定。ComboBox那列绑定的是数据库的role字段


<dxg:GridColumn Name="colFrameRole" FieldName="role" Header="访问权限" AllowEditing="true">


由于数据库表role字段每行只有一个值,comboBox的下拉框里也就只有一个值了。我现在想让它能显示所有值。并且默认值是数据库表中的值。
wwwljh 2012-02-20
  • 打赏
  • 举报
回复
不知道你用的是哪个第三方控件GridControl。我习惯于操作Grid中的某一个Cell我都是操作于之对应的数据集中的字段。GridColumn列类型是否有GridViewSelectColumn这种类型。如果有的话安全不用去绑定一个数据集。访问权限不出下拉列表这个问题。你给GridColumn中的ComboBox绑定数据源了吗?
mizuho_2006 2012-02-20
  • 打赏
  • 举报
回复
访问权限我绑定数据库表里的role字段,但是这样不能显示所有的权限名以供管理员选择。只能显示当前页面的权限,等于跟直接用文本显示没什么区别。
mizuho_2006 2012-02-20
  • 打赏
  • 举报
回复
我是在后台C#代码中绑定数据源的。


this.gridModifySummary.DataContext = result;
this.gridModifySummary.SetBinding(GridControl.ItemsSourceProperty, new Binding());


其中result是LINQ查询结果。你的意思是必须要在数据库表里加一个字段表示是否选中吗?我没有设置这样的字段。以前我做WINFORM的时候,数据库不需要设置这样的字段的,可是SL里的GridControl和WINFORM里好多地方都不一样。
wwwljh 2012-02-20
  • 打赏
  • 举报
回复
你把“选择”和“访问权限”这两列都绑定到数据集上。然后去操作数据集。比如把“选择”这列绑定到数据集中的bSelete这列上。在数据库读取时把bSelete设置True。对GridControl所有操作都通过操作数据集就可以。

8,737

社区成员

发帖
与我相关
我的任务
社区描述
WPF/Silverlight相关讨论
社区管理员
  • WPF/Silverlight社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧