三、WPF 全选,反选,以及获取选中行
页面代码
<TextBlock>
<CheckBox Name="cbAllCreate" Click="CbAllCreate_Click">All</CheckBox>
<CheckBox Name="cbInverseCreate" Click="CbInverseCreate_Click">Inverse</CheckBox>
</TextBlock>
<DataGrid Name="dgCreateTable" AutoGenerateColumns="False" VerticalScrollBarVisibility="Visible" Height="210" EnableRowVirtualization="False">
<DataGrid.Columns>
<DataGridCheckBoxColumn Header="Chose" ></DataGridCheckBoxColumn>
<DataGridTextColumn Header="Name" Binding="{Binding}" IsReadOnly="True"></DataGridTextColumn>
</DataGrid.Columns>
</DataGrid>
注:如果不加 EnableRowVirtualization="False" 全选反选会有遗漏的情况,所以一定要加上。
代码
/// <summary>
/// 全选
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void CbAllCreate_Click(object sender, RoutedEventArgs e)
{
CbAll(dgCreateTable, cbAllCreate); }
/// <summary>
/// 反选
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void CbInverseCreate_Click(object sender, RoutedEventArgs e)
{
Inverse(dgCreateTable, cbInverseCreate);
}
/// <summary>
/// 全选
/// </summary>
/// <param name="dg"></param>
/// <param name="cb"></param>
void CbAll(DataGrid dg, CheckBox cb)
{
dg.IsEnabled = cb.IsChecked != true; for (int i = ; i < dg.Items.Count; i++)
{
DataGridRow neddrow = (DataGridRow)dg.ItemContainerGenerator.ContainerFromIndex(i);
//获取该行的某列
if (neddrow != null)
{
FrameworkElement objElement = dg.Columns[].GetCellContent(neddrow);
if (objElement != null)
{
CheckBox objChk = (CheckBox)objElement;
objChk.IsChecked = cb.IsChecked;
}
}
}
}
/// <summary>
/// 反选
/// </summary>
/// <param name="dg"></param>
/// <param name="cb"></param>
void Inverse(DataGrid dg, CheckBox cb)
{
// cb.IsChecked = false;
for (int i = ; i < dg.Items.Count; i++)
{
DataGridRow neddrow = (DataGridRow)dg.ItemContainerGenerator.ContainerFromIndex(i);
//获取该行的某列
if (neddrow != null)
{
FrameworkElement objElement = dg.Columns[].GetCellContent(neddrow);
if (objElement != null)
{
CheckBox objChk = (CheckBox)objElement;
objChk.IsChecked = !objChk.IsChecked;
}
}
}
}
获取datagrid中选中的行
List<string> GetDataGridList(DataGrid dg)
{
List<string> list = new List<string>();
for (int i = ; i < dg.Items.Count; i++)
{
DataGridRow neddrow = (DataGridRow)dg.ItemContainerGenerator.ContainerFromIndex(i);
//获取该行的某列
if (neddrow == null)
continue;
FrameworkElement objElement = dg.Columns[].GetCellContent(neddrow);
if (objElement == null)
continue; CheckBox objChk = (CheckBox)objElement;
if (objChk.IsChecked != true)
continue; var obj = dg.Columns[].GetCellContent(neddrow);
if (obj == null)
continue;
var tb = (TextBlock)obj;
if (!string.IsNullOrEmpty(tb.Text))
{
list.Add(tb.Text);
}
}
return list;
}
三、WPF 全选,反选,以及获取选中行的更多相关文章
- ----Juquery复选框全选反选及获取选中值Value
--获取选中值 var pList = ""; $("[name='ckdProd']").each(function () { if ($(this).is( ...
- 基于JQ的多选/全选/反选及获取选中的值
<!-- author:青芒 --> <!DOCTYPE html> <html lang="en"> <head> <met ...
- checkbox、全选反选,获取值
<input id="Chk_All" onclick="CheckAll()" type="checkbox" /> < ...
- JQuery 全选 反选 获取Table 中指定td的元素值
//全选 function initTableCheckbox() { var $thr = $('table thead tr'); var $checkAllTh = $('<th>& ...
- jquery实现全选、全不选、反选、获取选中的所有值总结
HTML 我们的页面上有一个歌曲列表,列出多行歌曲名称,并匹配复选框供用户选择,并且在列表下方有一排操作按钮. <!doctype html> <html> <head& ...
- 全选,反选,获取值ajax提交
//必须先加载jquery //加载 弹出框插件 artdialog http://www.planeart.cn/demo/artDialog/ /****全选反选*开始**/ $(document ...
- jQuery实现的全选、反选和获取当前所有选中的值功能
链接: jQuery实现的全选.反选和获取当前所有选中的值功能 <ul id="list"> <li><label><input type ...
- jQuery 实现复选框全选、反选及获取选中的值
实现复选框全选,反选及获取选中的值: 代码如下: <!doctype html> <html lang="en"> <head> <met ...
- jQuery之标签操作和返回顶部、登录验证、全选反选、克隆示例
一.样式操作 1.JQ中的样式类 somenode.addClass();// 添加指定的CSS类名. somenode.removeClass();// 移除指定的CSS类名. somenode.h ...
随机推荐
- CentOS7编译curl
1.下载curl源代码 https://curl.haxx.se/download.html 2.进入curl目录 ./configure --prefix=/usr/local/curl make ...
- Hive 外部表新增字段或者修改字段类型等不生效
标题比较笼统,实际情况是: 对于Hive 的分区外部表的已有分区,在对表新增或者修改字段后,相关分区不生效. 原因是:表元数据虽然修改成功,但是分区也会对应列的元数据,这个地方不会随表的元数据修改而修 ...
- 百度优先收录HTTPS网站?你的网站https还在等什么
2015年5月25日,百度站长平台发布的公告,称将正式开放对HTTPS站点的收录.开始优先抓取HTTPS站点.所有事情都有两面性,这个消息对于已 经到HTTPS的网站来说是个喜大普奔的好消息.对于需要 ...
- 汇编语言、与C语言、实现--汉诺塔--
题意描述: 用汇编语言实现汉诺塔.只需要显示移盘次序,不必显示所移盘的大小,例如: X>Z,X>Y,Z>Y,X>Z,..... (n阶Hanoi塔问题)假设有三个分别命名为 ...
- bootstrap table demo
js 代码 //搜索 function searchTable(){ var searchInfo = $("#searchForm").serializeJsonObject() ...
- javascript window.opener的用法分析
window.opener 返回的是创建当前窗口的那个窗口的引用 window.opener 的用法 window.opener 返回的是创建当前窗口的那个窗口的引用,比如点击了a.htm上的一个链接 ...
- JS获取当前屏幕宽高
Javascript: 网页可见区域宽: document.body.clientWidth网页可见区域高: document.body.clientHeight网页可见区域宽: document.b ...
- Hadoop源码学习笔记(5) ——回顾DataNode和NameNode的类结构
Hadoop源码学习笔记(5) ——回顾DataNode和NameNode的类结构 之前我们简要的看过了DataNode的main函数以及整个类的大至,现在结合前面我们研究的线程和RPC,则可以进一步 ...
- input输入框限制(座机,手机号码)
记录一下 座机input输入框: <input style="width:100px;" id="tel" type="text" o ...
- R 语言贷款月供数据分析
#================================================================ #--------------------------------- ...