listview中如何通过嵌入checkbox以选中选择数据行?

woshizhangli 2009-12-27 02:44:04
如题。
本人现在在listview中嵌入checkbox
通过点击checkbox的click事件想获取到listview中对应的那一行,结果每次获取达到的都是空值~~

...全文
398 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ymch1968 2010-04-21
  • 打赏
  • 举报
回复
我也遇到和你一样的问题,不知道有没有高手能给帮忙解决!
woshizhangli 2009-12-27
  • 打赏
  • 举报
回复
谢谢楼上的几位,我还是将我的代码标出来吧~~
一个测试工程代码
WPF弄的
<Window x:Class="CheckBox.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="428" Width="541">
<Grid>
<ListView Margin="12,162,98,12" Name="listView1" SelectionChanged="listView1_SelectionChanged">
<ListView.View>
<GridView>
<GridViewColumn Header="Closed" Width="70">
<GridViewColumn.CellTemplate>
<DataTemplate>
<CheckBox Click="ClosedClick" />
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn Header="Violator ID" Width="Auto" />
</GridView>
</ListView.View>
<ListViewItem>1</ListViewItem>
<ListViewItem>3</ListViewItem>
<ListViewItem>2</ListViewItem>
</ListView>
</Grid>
</Window>
以上是xaml代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;


namespace CheckBox
{
/// <summary>
/// Window1.xaml 的交互逻辑
/// </summary>
public partial class Window1 : Window
{
string s = string.Empty;
public Window1()
{
InitializeComponent();


}

private void ClosedClick(object sender, RoutedEventArgs e)
{
s = ((System.Windows.Controls.ContentControl)((sender as ListView).SelectedItem)).Content.ToString();


}

private void listView1_SelectionChanged(object sender, SelectionChangedEventArgs e)
{

s = ((System.Windows.Controls.ContentControl)((sender as ListView).SelectedItem)).Content.ToString();

}

}
}

代码如上:
我现在在listview中点击了checkbox后
我需要将这一行的数据提取出来
我用checkbox的click事件
但取到的值是空的
用listview事件是不可行的
同样,像楼上说添加button按钮也是不行的~
yagebu1983 2009-12-27
  • 打赏
  • 举报
回复
如果你把ViewState禁用了,是看不到值得,页面一刷新就没有了
fengqiao1999 2009-12-27
  • 打赏
  • 举报
回复
在listview外加一个Button控件 进行测试


protected void Button1_Click(object sender, EventArgs e)
{
for (int i = 0; i < ListView1.Items.Count; i++)
{ //遍历整个listview找出选中的CheckBox
CheckBox chb = (CheckBox)ListView1.Items[i].FindControl("CheckBox1");
if (chb != null)
{
if (chb.Checked)
{
Response.Write(chb.Text); //打印checkbox的值
}
}
}
}
wuyq11 2009-12-27
  • 打赏
  • 举报
回复
private void button1_Click(object sender, EventArgs e)
{
string str="";
for (int i = 0; i < this.listView1.CheckedItems.Count; i++)
{
str= str+ "," + this.listView1.CheckedIndices[i].ToString();
}
MessageBox.Show(this.listView1 .CheckedItems.Count.ToString()+str.ToString ());
}
private void listView1_KeyDown(object sender, KeyEventArgs e)
{

if(e.KeyCode ==Keys.NumPad0 )
{
if (this.listView1.SelectedItems[0].Checked == true)
{
this.listView1.SelectedItems[0].Checked = false;
}
else
{
this.listView1.SelectedItems[0].Checked = true ;
}

}
}

silentwins 2009-12-27
  • 打赏
  • 举报
回复
string list = "";
for (int i = 0; i < this.listView1.CheckedItems.Count; i++)
{
if (this.listView1.CheckedItems[i].Checked)
{
list += this.listView1.CheckedItems[i].Text + ",";
}
}

111,125

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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