Silverlight删除数据表格中的数据,表格头部定义全选按钮,批量删除
2012-09-02 17:36
681 查看
实现的效果如图:
前台实现:
<UserControl.Resources>
<Style x:Key="DataGridColumnHeaderCheckBox" TargetType="data_primitives:DataGridColumnHeader">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="data_primitives:DataGridColumnHeader":>
<Grid Name="Root">
<CheckBox x:Name="CheckAll" Checked="CheckAll_Checked" Unchecked="CheckAll_Checked" />
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</UserControl.Resources><!--用户自定义资源,用于实现表格头部的全选-->
<Grid x:Name="LayoutRoot" Background="White" Height="421" Width="442">
<sdk:DataGrid AutoGenerateColumns="False" Height="200" HorizontalAlignment="Left" Margin="12,0,0,0" Name="dataGrid1" VerticalAlignment="Top" Width="376" >
<sdk:DataGrid.Columns>
<sdk:DataGridTemplateColumn Header="名字">
<sdk:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Name,Mode=TwoWay}" />
</DataTemplate>
</sdk:DataGridTemplateColumn.CellTemplate>
</sdk:DataGridTemplateColumn>
<sdk:DataGridTemplateColumn Header="删除操作">
<sdk:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Button Name="button_Delete" Content="删除" Click="button_Delete_Click" />
</DataTemplate>
</sdk:DataGridTemplateColumn.CellTemplate>
</sdk:DataGridTemplateColumn>
<sdk:DataGridTemplateColumn HeaderStyle="{StaticResource DataGridColumnHeaderCheckBox}"><!--使用自定义资源-->
<sdk:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<CheckBox x:Name="DeleteEntry" IsChecked="{Binding IsChecked, Mode=TwoWay}"/>
</DataTemplate>
</sdk:DataGridTemplateColumn.CellTemplate>
</sdk:DataGridTemplateColumn>
</sdk:DataGrid.Columns>
<sdk:DataGrid.RowDetailsTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding Age}" />
<TextBlock Text="{Binding IsMan}" />
</StackPanel>
</DataTemplate>
</sdk:DataGrid.RowDetailsTemplate>
</sdk:DataGrid>
<Button Content="删除选中项" Height="23" HorizontalAlignment="Left" Margin="313,265,0,0" Name="button1" VerticalAlignment="Top" Width="75" Click="button1_Click" />
</Grid>
后台实现:
public class Person
{
string name;
public string Name
{
get { return name; }
set { name = value; }
}
int age;
public int Age
{
get { return age; }
set { age = value; }
}
bool isMan;
public bool IsMan
{
get { return isMan; }
set { isMan = value; }
}
bool isChecked;
public bool IsChecked
{
get { return isChecked; }
set { isChecked = value; }
}
}
//List<Person> itemList = new List<Person>();
ObservableCollection<Person> itemList = new ObservableCollection<Person>();//动态的数据集合
public MainPage()
{
InitializeComponent();
itemList.Add(new Person { Name = "当当", Age = 45, IsMan = true,IsChecked=false });
itemList.Add(new Person { Name = "大雄", Age = 3, IsMan = false, IsChecked = false });
itemList.Add(new Person { Name = "小新", Age = 12, IsMan = false, IsChecked = false });
itemList.Add(new Person { Name = "丁丁", Age = 32, IsMan = true, IsChecked = false });
itemList.Add(new Person { Name = "Gaga", Age = 56, IsMan = true, IsChecked = false });
itemList.Add(new Person { Name = "司空", Age = 33, IsMan = false, IsChecked = false });
itemList.Add(new Person { Name = "lfy", Age = 22, IsMan = true });
itemList.Add(new Person { Name = "lili", Age = 34, IsMan = true, IsChecked = false });
itemList.Add(new Person { Name = "飞羽", Age = 12, IsMan = false, IsChecked = false });
itemList.Add(new Person { Name = "司空", Age = 33, IsMan = false, IsChecked = false });
itemList.Add(new Person { Name = "lfy", Age = 22, IsMan = true });
itemList.Add(new Person { Name = "lili", Age = 34, IsMan = true, IsChecked = false });
itemList.Add(new Person { Name = "飞羽", Age = 12, IsMan = false, IsChecked = false });
dataGrid1.ItemsSource = itemList;
}
//删除单个
private void button_Delete_Click(object sender, RoutedEventArgs e)
{
if (MessageBoxResult.OK == MessageBox.Show("确定要删除吗?", "注意!", MessageBoxButton.OKCancel))
{
var item = (dataGrid1.SelectedItem as Person);
itemList.Remove(item);
}
}
//全选
private void CheckAll_Checked(object sender, RoutedEventArgs e)
{
foreach (var p in itemList)
{
p.IsChecked =(bool)(sender as CheckBox).IsChecked;
}
dataGrid1.ItemsSource = null;
dataGrid1.ItemsSource = itemList;
}
//删除选中项
private void button1_Click(object sender, RoutedEventArgs e)
{
for (int i = 0; i < itemList.Count; i++)
{
if (itemList[i].IsChecked == true)
{
itemList.RemoveAt(i);
i--;
}
}
}
前台实现:
<UserControl.Resources>
<Style x:Key="DataGridColumnHeaderCheckBox" TargetType="data_primitives:DataGridColumnHeader">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="data_primitives:DataGridColumnHeader":>
<Grid Name="Root">
<CheckBox x:Name="CheckAll" Checked="CheckAll_Checked" Unchecked="CheckAll_Checked" />
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</UserControl.Resources><!--用户自定义资源,用于实现表格头部的全选-->
<Grid x:Name="LayoutRoot" Background="White" Height="421" Width="442">
<sdk:DataGrid AutoGenerateColumns="False" Height="200" HorizontalAlignment="Left" Margin="12,0,0,0" Name="dataGrid1" VerticalAlignment="Top" Width="376" >
<sdk:DataGrid.Columns>
<sdk:DataGridTemplateColumn Header="名字">
<sdk:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Name,Mode=TwoWay}" />
</DataTemplate>
</sdk:DataGridTemplateColumn.CellTemplate>
</sdk:DataGridTemplateColumn>
<sdk:DataGridTemplateColumn Header="删除操作">
<sdk:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Button Name="button_Delete" Content="删除" Click="button_Delete_Click" />
</DataTemplate>
</sdk:DataGridTemplateColumn.CellTemplate>
</sdk:DataGridTemplateColumn>
<sdk:DataGridTemplateColumn HeaderStyle="{StaticResource DataGridColumnHeaderCheckBox}"><!--使用自定义资源-->
<sdk:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<CheckBox x:Name="DeleteEntry" IsChecked="{Binding IsChecked, Mode=TwoWay}"/>
</DataTemplate>
</sdk:DataGridTemplateColumn.CellTemplate>
</sdk:DataGridTemplateColumn>
</sdk:DataGrid.Columns>
<sdk:DataGrid.RowDetailsTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding Age}" />
<TextBlock Text="{Binding IsMan}" />
</StackPanel>
</DataTemplate>
</sdk:DataGrid.RowDetailsTemplate>
</sdk:DataGrid>
<Button Content="删除选中项" Height="23" HorizontalAlignment="Left" Margin="313,265,0,0" Name="button1" VerticalAlignment="Top" Width="75" Click="button1_Click" />
</Grid>
后台实现:
public class Person
{
string name;
public string Name
{
get { return name; }
set { name = value; }
}
int age;
public int Age
{
get { return age; }
set { age = value; }
}
bool isMan;
public bool IsMan
{
get { return isMan; }
set { isMan = value; }
}
bool isChecked;
public bool IsChecked
{
get { return isChecked; }
set { isChecked = value; }
}
}
//List<Person> itemList = new List<Person>();
ObservableCollection<Person> itemList = new ObservableCollection<Person>();//动态的数据集合
public MainPage()
{
InitializeComponent();
itemList.Add(new Person { Name = "当当", Age = 45, IsMan = true,IsChecked=false });
itemList.Add(new Person { Name = "大雄", Age = 3, IsMan = false, IsChecked = false });
itemList.Add(new Person { Name = "小新", Age = 12, IsMan = false, IsChecked = false });
itemList.Add(new Person { Name = "丁丁", Age = 32, IsMan = true, IsChecked = false });
itemList.Add(new Person { Name = "Gaga", Age = 56, IsMan = true, IsChecked = false });
itemList.Add(new Person { Name = "司空", Age = 33, IsMan = false, IsChecked = false });
itemList.Add(new Person { Name = "lfy", Age = 22, IsMan = true });
itemList.Add(new Person { Name = "lili", Age = 34, IsMan = true, IsChecked = false });
itemList.Add(new Person { Name = "飞羽", Age = 12, IsMan = false, IsChecked = false });
itemList.Add(new Person { Name = "司空", Age = 33, IsMan = false, IsChecked = false });
itemList.Add(new Person { Name = "lfy", Age = 22, IsMan = true });
itemList.Add(new Person { Name = "lili", Age = 34, IsMan = true, IsChecked = false });
itemList.Add(new Person { Name = "飞羽", Age = 12, IsMan = false, IsChecked = false });
dataGrid1.ItemsSource = itemList;
}
//删除单个
private void button_Delete_Click(object sender, RoutedEventArgs e)
{
if (MessageBoxResult.OK == MessageBox.Show("确定要删除吗?", "注意!", MessageBoxButton.OKCancel))
{
var item = (dataGrid1.SelectedItem as Person);
itemList.Remove(item);
}
}
//全选
private void CheckAll_Checked(object sender, RoutedEventArgs e)
{
foreach (var p in itemList)
{
p.IsChecked =(bool)(sender as CheckBox).IsChecked;
}
dataGrid1.ItemsSource = null;
dataGrid1.ItemsSource = itemList;
}
//删除选中项
private void button1_Click(object sender, RoutedEventArgs e)
{
for (int i = 0; i < itemList.Count; i++)
{
if (itemList[i].IsChecked == true)
{
itemList.RemoveAt(i);
i--;
}
}
}
相关文章推荐
- 动态创建表格;验证数据,全选和反选,批量删除
- yii2使用GridView实现数据全选及批量删除按钮示例
- AngularJS表格数据全选反选批量删除,删除的数据添加到数组里
- AngularJS表格数据全选反选,批量删除,借助计数器删除
- jquery table表格添加删除数据(含批量删除,全选全不选和简单的表单验证)
- angular 输入添加,全选,批量删除表格数据
- 对表格进行批量操作如全选反选删除功能
- RecyclerView单选框删除条目,全选删除,Recyclerview 实现多选,单选,全选,反选,批量删除的步骤 1.在Recyclerview布局中添加上底部的全选和反选按钮,删除按钮,和计算
- sql 2008批量删除数据表格
- JS调用C#后台代码---JS实现DataGrid“全选”、“反选”、调用后台代码批量删除数据
- angularjs表格批量删除和全选反选
- php对表格进行批量操作如全选反选删除功能
- iOS之表格数据批量删除(系统样式)
- 表格6:《按钮搜索 + 全选 + 排序查询 + 批量删除 + 总计》
- AngularJs多选框表格全选反选批量删除
- easyui tree datagrid动态添加表头和表格数据,动态弹出框,修改和删除按钮
- 在可编辑表格EditorGrid中,我选择一行已输入的数据,点击删除按钮,该行数据将被删除,然后当我点击表单提交按钮时,已经被删除的那一行数据仍然被插入数据库中
- 点删除按钮把datagrid中的数据批量删除,用javascript写批量控制
- 在可编辑表格EditorGrid中,我选择一行已输入的数据,点击删除按钮,该行数据将被删除,然后当我点击表单提交按钮时,已经被删除的那一行数据仍然被插入数据库中
- 前端_全选、反选、批量删除、表格