42 个解决方案
#1
用一个循环嘛
#2
大哥.我是个新手.请帮下忙.我都找不到这个checkbox
不知道如何来做.
不知道如何来做.
#3
就是找不到这个复选框的值.不知道它是否被选中.
#4
((checkBox)(datagridview.rows[1].cell[1])).check == false/true。。。
具体全选的话,你就触发全选事件的时候再把在循环中把所有的checkbox=true,反之为false
具体全选的话,你就触发全选事件的时候再把在循环中把所有的checkbox=true,反之为false
#5
foreach (DataGridViewRow dr in this.dataGridView1.Rows)
{
(bool)dr.Cells[0].Value = true;
}
试一下
我没有作具体的试验,你可以用这个方法试一下,应该可以
{
(bool)dr.Cells[0].Value = true;
}
试一下
我没有作具体的试验,你可以用这个方法试一下,应该可以
#6
注意 数据源是什么
#7
用
girdview.rows.count
girdview.rows.findcontrol(复选框名字)
可以用一个循环实现.
girdview.rows.count
girdview.rows.findcontrol(复选框名字)
可以用一个循环实现.
#8
各位大哥.能不能弄具体一点儿.谢谢了...
因为我想做一个全选和反选来进行删除.
但是做了很久一直没有做出来.
因为我想做一个全选和反选来进行删除.
但是做了很久一直没有做出来.
#9
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="GridView_CheckBoxColumn.aspx.cs" Inherits="GridSamples_GridView_CheckBoxColumn" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>无标题页</title>
<script language="javascript" type="text/javascript">
function selectAll(obj)
{
var theTable = obj.parentElement.parentElement.parentElement;
var i;
var j = obj.parentElement.cellIndex;
for(i=0;i<theTable.rows.length;i++)
{
var objCheckBox = theTable.rows[i].cells[j].firstChild;
if(objCheckBox.checked!=null)objCheckBox.checked = obj.checked;
}
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:GridView ID="GridView1" runat="server" AllowPaging="True" AutoGenerateColumns="False"
DataKeyNames="id" DataSourceID="AccessDataSource1" AllowSorting="True" OnDataBinding="GridView1_DataBinding" OnRowDataBound="GridView1_RowDataBound">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server" Checked="True" Text='<%#DataBinder.Eval(Container.DataItem,"id") %>' />
</ItemTemplate>
<HeaderTemplate>
<input id="CheckAll" type="checkbox" onclick="selectAll(this);" />本页全选
</HeaderTemplate>
</asp:TemplateField>
<asp:BoundField DataField="id" HeaderText="id" InsertVisible="False" ReadOnly="True"
SortExpression="id" />
<asp:BoundField DataField="name" HeaderText="name" SortExpression="name" />
<asp:BoundField DataField="sex" HeaderText="sex" SortExpression="sex" />
<asp:BoundField DataField="deptid" HeaderText="deptid" SortExpression="deptid" />
</Columns>
</asp:GridView>
<asp:AccessDataSource ID="AccessDataSource1" runat="server" DataFile="~/App_Data/test.mdb"
SelectCommand="SELECT [id], [name], [sex], [deptid] FROM [employees]"></asp:AccessDataSource>
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="ShowAllSelectedItem" />
<asp:TextBox ID="TextBox1" runat="server" Width="200px" ReadOnly="True"></asp:TextBox></div>
</form>
</body>
</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>无标题页</title>
<script language="javascript" type="text/javascript">
function selectAll(obj)
{
var theTable = obj.parentElement.parentElement.parentElement;
var i;
var j = obj.parentElement.cellIndex;
for(i=0;i<theTable.rows.length;i++)
{
var objCheckBox = theTable.rows[i].cells[j].firstChild;
if(objCheckBox.checked!=null)objCheckBox.checked = obj.checked;
}
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:GridView ID="GridView1" runat="server" AllowPaging="True" AutoGenerateColumns="False"
DataKeyNames="id" DataSourceID="AccessDataSource1" AllowSorting="True" OnDataBinding="GridView1_DataBinding" OnRowDataBound="GridView1_RowDataBound">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server" Checked="True" Text='<%#DataBinder.Eval(Container.DataItem,"id") %>' />
</ItemTemplate>
<HeaderTemplate>
<input id="CheckAll" type="checkbox" onclick="selectAll(this);" />本页全选
</HeaderTemplate>
</asp:TemplateField>
<asp:BoundField DataField="id" HeaderText="id" InsertVisible="False" ReadOnly="True"
SortExpression="id" />
<asp:BoundField DataField="name" HeaderText="name" SortExpression="name" />
<asp:BoundField DataField="sex" HeaderText="sex" SortExpression="sex" />
<asp:BoundField DataField="deptid" HeaderText="deptid" SortExpression="deptid" />
</Columns>
</asp:GridView>
<asp:AccessDataSource ID="AccessDataSource1" runat="server" DataFile="~/App_Data/test.mdb"
SelectCommand="SELECT [id], [name], [sex], [deptid] FROM [employees]"></asp:AccessDataSource>
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="ShowAllSelectedItem" />
<asp:TextBox ID="TextBox1" runat="server" Width="200px" ReadOnly="True"></asp:TextBox></div>
</form>
</body>
</html>
#10
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class GridSamples_GridView_CheckBoxColumn : System.Web.UI.Page
{
/// <summary>
/// 获取或设置选中项的集合
/// </summary>
protected ArrayList SelectedItems
{
get
{
return (ViewState["mySelectedItems"] != null) ? (ArrayList)ViewState["mySelectedItems"] : null;
}
set
{
ViewState["mySelectedItems"] = value;
}
}
protected void Page_Load(object sender, EventArgs e)
{
}
protected void GridView1_DataBinding(object sender, EventArgs e)
{
//在每一次重新绑定之前,需要调用CollectSelected方法从当前页收集选中项的情况
CollectSelected();
}
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
//这里的处理是为了回显之前选中的情况
if (e.Row.RowIndex > -1 && this.SelectedItems!=null)
{
DataRowView row = e.Row.DataItem as DataRowView;
CheckBox cb = e.Row.FindControl("CheckBox1") as CheckBox;
if(this.SelectedItems.Contains(row["id"].ToString()))
cb.Checked = true;
else
cb.Checked = false;
}
}
/// <summary>
/// 从当前页收集选中项的情况
/// </summary>
protected void CollectSelected()
{
ArrayList selectedItems = null;
if (this.SelectedItems == null)
selectedItems = new ArrayList();
else
selectedItems = this.SelectedItems;
for (int i = 0; i < this.GridView1.Rows.Count; i++)
{
string id = this.GridView1.Rows[i].Cells[1].Text;
CheckBox cb = this.GridView1.Rows[i].FindControl("CheckBox1") as CheckBox;
if (selectedItems.Contains(id) && !cb.Checked)
selectedItems.Remove(id);
if (!selectedItems.Contains(id) && cb.Checked)
selectedItems.Add(id);
}
this.SelectedItems = selectedItems;
}
protected void Button1_Click(object sender, EventArgs e)
{
//最后,需要对选中项进行操作之前,不能忘了还要最后一次收集当前页的选中情况
CollectSelected();
this.TextBox1.Text = string.Empty;
foreach (object tmp in this.SelectedItems)
this.TextBox1.Text += tmp.ToString() + ",";
}
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class GridSamples_GridView_CheckBoxColumn : System.Web.UI.Page
{
/// <summary>
/// 获取或设置选中项的集合
/// </summary>
protected ArrayList SelectedItems
{
get
{
return (ViewState["mySelectedItems"] != null) ? (ArrayList)ViewState["mySelectedItems"] : null;
}
set
{
ViewState["mySelectedItems"] = value;
}
}
protected void Page_Load(object sender, EventArgs e)
{
}
protected void GridView1_DataBinding(object sender, EventArgs e)
{
//在每一次重新绑定之前,需要调用CollectSelected方法从当前页收集选中项的情况
CollectSelected();
}
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
//这里的处理是为了回显之前选中的情况
if (e.Row.RowIndex > -1 && this.SelectedItems!=null)
{
DataRowView row = e.Row.DataItem as DataRowView;
CheckBox cb = e.Row.FindControl("CheckBox1") as CheckBox;
if(this.SelectedItems.Contains(row["id"].ToString()))
cb.Checked = true;
else
cb.Checked = false;
}
}
/// <summary>
/// 从当前页收集选中项的情况
/// </summary>
protected void CollectSelected()
{
ArrayList selectedItems = null;
if (this.SelectedItems == null)
selectedItems = new ArrayList();
else
selectedItems = this.SelectedItems;
for (int i = 0; i < this.GridView1.Rows.Count; i++)
{
string id = this.GridView1.Rows[i].Cells[1].Text;
CheckBox cb = this.GridView1.Rows[i].FindControl("CheckBox1") as CheckBox;
if (selectedItems.Contains(id) && !cb.Checked)
selectedItems.Remove(id);
if (!selectedItems.Contains(id) && cb.Checked)
selectedItems.Add(id);
}
this.SelectedItems = selectedItems;
}
protected void Button1_Click(object sender, EventArgs e)
{
//最后,需要对选中项进行操作之前,不能忘了还要最后一次收集当前页的选中情况
CollectSelected();
this.TextBox1.Text = string.Empty;
foreach (object tmp in this.SelectedItems)
this.TextBox1.Text += tmp.ToString() + ",";
}
#11
for(int i=0;i<this.dg.rows.count;i++)
{
((checkbox)(this.dg.rows[i].cell[1].text)).checkd == true //全选
}
领会精神
{
((checkbox)(this.dg.rows[i].cell[1].text)).checkd == true //全选
}
领会精神
#12
我是想在C#里做.不是asp里.
#13
不知道在C#里怎么来找这个checkbox.ASP里到好做一些.可是现在就是做不出来.不知道从做着手了.
人都晕了.
人都晕了.
#14
首先要一个事件来相应你后台的方法,来遍历datagridview获取每行的checkbox
#15
大哥!我就是不知道怎么弄了.人都晕了..麻烦明白一些!!!
#16
你可以用DataTable进行绑定,在dataGridView中进行更改是不需要进行判断的.
在保存的时候直接保存DataTable 声明的dt就可以了.
在保存的时候直接保存DataTable 声明的dt就可以了.
#17
//全选复选框状态改变的事件
private void chkChooseAll_CheckedChanged(object sender, EventArgs e)
{
foreach (ListViewItem item in lsvSubject.Items) {
item.Checked = chkChooseAll.Checked;//每一项状态都与全选复选框状态相同
}
}
这是我做过的一个全选复选框的例子,不过是用的ListView,参照着改改就行了。
private void chkChooseAll_CheckedChanged(object sender, EventArgs e)
{
foreach (ListViewItem item in lsvSubject.Items) {
item.Checked = chkChooseAll.Checked;//每一项状态都与全选复选框状态相同
}
}
这是我做过的一个全选复选框的例子,不过是用的ListView,参照着改改就行了。
#18
老大!我找不到这个checked这个事件...所以不知道怎么做呀...
因为这个checkbox是在datagridview中添加的列...
所以先要找这个checkbox这个东东...
因为这个checkbox是在datagridview中添加的列...
所以先要找这个checkbox这个东东...
#19
function CheckAll()
{
var Collection=document.getElementsByName("ChangeState");
var CheckAll=document.getElementById("ChkAll");
for(var i=0;i<Collection.length;i++)
{
Collection[i].checked=CheckAll.checked;
}
}
<asp:GridView ID="UserList" runat="server" Width=800px AutoGenerateColumns="False" AllowPaging="True" OnPageIndexChanging="UserList_PageIndexChanging" PageSize="20"
SelectedRowStyle-CssClass="datagridSelectedItem" RowStyle-CssClass="datagridItem" HeaderStyle-CssClass="datagridHeader">
<RowStyle HorizontalAlign="Center" CssClass="datagridItem"/>
<Columns>
<asp:TemplateField HeaderText="用户名">
<ItemTemplate>
<div id="oprator<%# DataBinder.Eval(Container.DataItem, "UserID")%>" onmouseover="LookUpInfo(oprator<%# DataBinder.Eval(Container.DataItem, "UserID")%>)" onmouseout="hidden()" title="<%# DataBinder.Eval(Container.DataItem, "UserID")%>"><%# DataBinder.Eval(Container.DataItem, "LoginName")%></div>
</ItemTemplate>
<HeaderStyle HorizontalAlign="Center" VerticalAlign="Middle" />
</asp:TemplateField>
<asp:TemplateField HeaderText="角 色">
<ItemTemplate>
<a title="点击修改该用户角色" href="#" style="cursor:hand" onclick="window.open('UserRole.aspx?UserID=<%# DataBinder.Eval(Container.DataItem, "UserID") %>&RoleType=1','null','height=200,width=300,status=no,toolbar=no,menubar=no,location=no')"><%# DataBinder.Eval(Container.DataItem, "Name") %></a>
</ItemTemplate>
<HeaderStyle HorizontalAlign="Center" VerticalAlign="Middle" />
</asp:TemplateField>
<asp:TemplateField HeaderText="上 级">
<ItemTemplate>
<%#GetParentInfo(int.Parse(DataBinder.Eval(Container.DataItem, "ParentID").ToString()))%>
</ItemTemplate>
<HeaderStyle HorizontalAlign="Center" VerticalAlign="Middle" />
</asp:TemplateField>
<asp:TemplateField HeaderText="下 级">
<ItemTemplate>
<a href="SubUsersList.aspx?ParentID=<%# DataBinder.Eval(Container.DataItem, "UserID")%>" title="下级人员资料">查看</a>
</ItemTemplate>
<HeaderStyle HorizontalAlign="Center" VerticalAlign="Middle" />
</asp:TemplateField>
<asp:TemplateField HeaderText="帐户余额">
<ItemTemplate>
<%# DataBinder.Eval(Container.DataItem, "AccountFee")%>
</ItemTemplate>
<HeaderStyle HorizontalAlign="Center" VerticalAlign="Middle" />
</asp:TemplateField>
<asp:TemplateField HeaderText="安全状态">
<ItemTemplate>
<A title="<%#(DataBinder.Eval(Container.DataItem, "SafeState").ToString())=="0"?"未绑定":"已绑定CPU,网卡,硬盘" %>"><%# (DataBinder.Eval(Container.DataItem, "SafeState").ToString())=="0"?"<font color='red'>未绑定</font>":"<font color='blue'>已绑定</font>"%></A>
</ItemTemplate>
<HeaderStyle HorizontalAlign="Center" VerticalAlign="Middle" />
</asp:TemplateField>
<asp:TemplateField HeaderText="密码重置">
<ItemTemplate>
<a href="PasswordReset.aspx?UserID=<%# DataBinder.Eval(Container.DataItem, "UserID")%>" title="重置">重置</a>
</ItemTemplate>
<HeaderStyle HorizontalAlign="Center" VerticalAlign="Middle" />
</asp:TemplateField>
<asp:TemplateField HeaderText="帐户状态">
<ItemTemplate>
<a href="UserList.aspx?flag=<%# DataBinder.Eval(Container.DataItem, "UserID")%>"><%# Boolean.Parse((DataBinder.Eval(Container.DataItem, "IsForbid").ToString())) == false ? "<font color='blue'>正常</font>" : "<font color='Red'>禁用</font>"%></a>
</ItemTemplate>
<HeaderStyle HorizontalAlign="Center" VerticalAlign="Middle" />
</asp:TemplateField>
<asp:TemplateField HeaderText="状态更改">
<ItemTemplate>
<input id="ChangeState" name="ChangeState" type="checkbox" value='<%# DataBinder.Eval(Container.DataItem, "UserID")%>' />
</ItemTemplate>
<HeaderStyle HorizontalAlign="Center" VerticalAlign="Middle" />
</asp:TemplateField>
</Columns>
<PagerSettings Mode="NextPrevious" NextPageText="下一页" PreviousPageText="上一页" />
<SelectedRowStyle CssClass="datagridSelectedItem" />
<HeaderStyle CssClass="datagridHeader" />
</asp:GridView>
</td>
</tr>
<tr id="update" runat="server">
<td align="right">选择全部<input id="ChkAll" name="ChkAll" onclick="CheckAll()" type="checkbox" /><asp:Button ID="BtnModify" runat="server" Text="状态修改" OnClick="BtnModify_Click" CssClass="ManagerButton" /></td>
</tr>
</table>
#20
function ChkAllorNot()
{
var objChk;
objChk = document.getElementById("ckbCheckAll");
if (objChk.checked==true)
{
for (var i = 0; i < document.form1.elements.length; i++)
{
theelement = document.form1.elements[i];
if (theelement.type == 'checkbox')
{
if (theelement != document.getElementById("ckbCheckAll"))
{
if (theelement.disabled==false)
{
theelement.checked= true;
}
}
}
}
}
else
{
for (var i = 0; i < document.form1.elements.length; i++)
{
theelement = document.form1.elements[i];
if (theelement.type == 'checkbox')
{
if (theelement != document.getElementById("ckbCheckAll"))
{
if (theelement.disabled==false)
{
theelement.checked= false;
}
}
}
}
}
}
這是寫在前台的方法,只需要在后太注冊就可以了!
ckbCheckAll.Attributes.Add("onclick", "ChkAllorNot()")
{
var objChk;
objChk = document.getElementById("ckbCheckAll");
if (objChk.checked==true)
{
for (var i = 0; i < document.form1.elements.length; i++)
{
theelement = document.form1.elements[i];
if (theelement.type == 'checkbox')
{
if (theelement != document.getElementById("ckbCheckAll"))
{
if (theelement.disabled==false)
{
theelement.checked= true;
}
}
}
}
}
else
{
for (var i = 0; i < document.form1.elements.length; i++)
{
theelement = document.form1.elements[i];
if (theelement.type == 'checkbox')
{
if (theelement != document.getElementById("ckbCheckAll"))
{
if (theelement.disabled==false)
{
theelement.checked= false;
}
}
}
}
}
}
這是寫在前台的方法,只需要在后太注冊就可以了!
ckbCheckAll.Attributes.Add("onclick", "ChkAllorNot()")
#21
你直接判断checkbox列的每个单元格的value是否等于1就行了,选中为1,没选中就为0。
同样,你也可以用1或者0去赋值,checkbox列就会变为选中或者不选中。
同样,你也可以用1或者0去赋值,checkbox列就会变为选中或者不选中。
#22
各位老大些....是在C#里!
我做的是窗口程序...不是ASP...
那个checkbox是在datagridview中添加的列....
现在是要在datagridview中先找到复选框才可以进行操作........
我做的是窗口程序...不是ASP...
那个checkbox是在datagridview中添加的列....
现在是要在datagridview中先找到复选框才可以进行操作........
#23
这个简单,.不就全选吗 是不是这样子 是的话 你发个邮件到我邮箱 我发源码给你
#24
你要的是WinFrom下的还是WebForm下的?
#25
winfrom的 窗口程序...
不是做网页
是C# 2005中 datagridview 中加的checkbox列
不是做网页
是C# 2005中 datagridview 中加的checkbox列
#26
for (int i = 0; i < dgMovie.Rows.Count; i++)
{
if (dgMovie.Rows[i].Cells["列名或索引"].Value as bool)
{
dgMovie.Rows[i].Cells["列名或索引"].Value = false;
}
else
{
dgMovie.Rows[i].Cells["列名或索引"].Value = true;
}
}
这是反选
#27
晕,上面的dgMovie时某datagridview,嘿嘿,忘记说了
#28
as boll 那儿要报错......
#29
as bool 那儿有报错......
不过你的答案我觉得已经快要成功了....但是总觉得还差一些什么东东...
大家帮下忙.....
不过你的答案我觉得已经快要成功了....但是总觉得还差一些什么东东...
大家帮下忙.....
#30
报错是不是未将对象引用设置到对象实例?
因为这个dgMovie.Rows[i].Cells["列名或索引"].Value 的value有可能时null,这个处理一下好了,比如
因为这个dgMovie.Rows[i].Cells["列名或索引"].Value 的value有可能时null,这个处理一下好了,比如
if(value == null)
{
dgMovie.Rows[i].Cells["列名或索引"].Value = false;
}
#31
放在全部选中的事件里...
foreach(DataGridItem item in this.dgMaterialList.Items)
{
System.Web.UI.HtmlControls.HtmlInputCheckBox chk=(System.Web.UI.HtmlControls.HtmlInputCheckBox)item.Cells[0].Controls[0];
chk.Checked = true;
}
foreach(DataGridItem item in this.dgMaterialList.Items)
{
System.Web.UI.HtmlControls.HtmlInputCheckBox chk=(System.Web.UI.HtmlControls.HtmlInputCheckBox)item.Cells[0].Controls[0];
chk.Checked = true;
}
#32
不是ASP.NET 现在做的窗口程序.....
winfrom的 窗口程序...
不是做网页
是C# 2005中 datagridview 中加的checkbox列
大哥些...帮下忙....
winfrom的 窗口程序...
不是做网页
是C# 2005中 datagridview 中加的checkbox列
大哥些...帮下忙....
#33
<script language="javascript" event="onclick" for="chkAll">
var allInput = document.getElementsByTagName("input");
//alert(allInput.length);
var lang = allInput.length;
for(i=0;i<lang;i++)
{
//alert(i);
if(document.Form1.chkAll.checked == true)
{
//alert(allInput[i].type);
if(allInput[i].type == "checkbox")
{
allInput[i].checked = true;
}
}
else
{
if(allInput[i].type == "checkbox")
{
allInput[i].checked = false;
}
}
}
</script>
var allInput = document.getElementsByTagName("input");
//alert(allInput.length);
var lang = allInput.length;
for(i=0;i<lang;i++)
{
//alert(i);
if(document.Form1.chkAll.checked == true)
{
//alert(allInput[i].type);
if(allInput[i].type == "checkbox")
{
allInput[i].checked = true;
}
}
else
{
if(allInput[i].type == "checkbox")
{
allInput[i].checked = false;
}
}
}
</script>
#34
不是ASP.NET 现在做的窗口程序.....
winfrom的 窗口程序...
不是做网页
是C# 2005中 datagridview 中加的checkbox列
大哥些...帮下忙....
winfrom的 窗口程序...
不是做网页
是C# 2005中 datagridview 中加的checkbox列
大哥些...帮下忙....
#35
哥们问题解决了没?
我给你个全选和全不选的代码,不知道能不能满足你的要求,我的代码就是在datagridview中加一列复选框(这列复选框是在datagridview中添加列里边加的datagridviewcheckboxcolumn索引为0,也就是在datagridview的第一列),然后可以控制他们是否全选和全不选:
private void btnSelectAll_Click(object sender, EventArgs e)
{
//把datagridview的所有记录的第一列的复选框设为选中
for (int i = 0; i < dataGridView.Rows.Count; i++)
{
this.dataGridView.Rows[i].Cells[0].Value = true;
}
}
private void btnCancelAll_Click(object sender, EventArgs e)
{
//把datagridview的所有记录的第一列的复选框设为不选
for (int i = 0; i < datagridview.Rows.Count; i++)
{
this.datagridview.Rows[i].Cells[0].Value = false;
}
}
//提交当前复选框的选择状态,复选框选或不选要提交下
private void dataGridView_CurrentCellDirtyStateChanged(object sender, EventArgs e)
{
this.dataGridView.CommitEdit(DataGridViewDataErrorContexts.Commit);
}
//哥们要是符合你的需求的话,把分给了啊,哥们我穷死拉!:)
我给你个全选和全不选的代码,不知道能不能满足你的要求,我的代码就是在datagridview中加一列复选框(这列复选框是在datagridview中添加列里边加的datagridviewcheckboxcolumn索引为0,也就是在datagridview的第一列),然后可以控制他们是否全选和全不选:
private void btnSelectAll_Click(object sender, EventArgs e)
{
//把datagridview的所有记录的第一列的复选框设为选中
for (int i = 0; i < dataGridView.Rows.Count; i++)
{
this.dataGridView.Rows[i].Cells[0].Value = true;
}
}
private void btnCancelAll_Click(object sender, EventArgs e)
{
//把datagridview的所有记录的第一列的复选框设为不选
for (int i = 0; i < datagridview.Rows.Count; i++)
{
this.datagridview.Rows[i].Cells[0].Value = false;
}
}
//提交当前复选框的选择状态,复选框选或不选要提交下
private void dataGridView_CurrentCellDirtyStateChanged(object sender, EventArgs e)
{
this.dataGridView.CommitEdit(DataGridViewDataErrorContexts.Commit);
}
//哥们要是符合你的需求的话,把分给了啊,哥们我穷死拉!:)
#36
判断某条记录是否被选中:
if(dataGridView.Rows.Cuount!=0)//当前的记录不为空
{
for(int i=0;i<dataGridView.Rows.Count;i++)
{
if(dataGridView.Rows[i].Cell[0].EditedFormattedValue.ToString()=="True")//或者=="False"
{
//处理代码
}
}
}
if(dataGridView.Rows.Cuount!=0)//当前的记录不为空
{
for(int i=0;i<dataGridView.Rows.Count;i++)
{
if(dataGridView.Rows[i].Cell[0].EditedFormattedValue.ToString()=="True")//或者=="False"
{
//处理代码
}
}
}
#37
兄弟.你太好了....反选呢?
#38
你进入你那个帖子后,点“管理帖子”按钮,进入帖子管理界面,找到我给你回复的那楼也就是35和36楼,有个得分的输入框,在里边输入分数,然后上边有个密码输入框,点结帖就行了,领导在呢,不方便qq,呵呵!
#39
俺是新手,也用到这个,呵呵,学学~~~~
#40
我想问一下36楼的哥们儿啊,你的那个全选和反选是设置了两个按钮吧。可不可以只设置一个按钮,并且让按钮上面的字在全选和不全选之间切换啊。急啊,谢谢啊
#41
我已经知道了
if (num == 0)
{
// 把datagridview的所有记录的第一列的复选框设为选中
for (int i = 0; i < this.dataGridView1.Rows.Count; i++)
{
this.dataGridView1.Rows[i].Cells[0].Value = 1;
}
num = 1;
btnAll.Text = "取消全选";
}
else
{
// 把datagridview的所有记录的第一列的复选框设为不选
for (int i = 0; i < this.dataGridView1.Rows.Count; i++)
{
this.dataGridView1.Rows[i].Cells[0].Value = 0;
}
num = 0;
btnAll.Text = "全选";
}
if (num == 0)
{
// 把datagridview的所有记录的第一列的复选框设为选中
for (int i = 0; i < this.dataGridView1.Rows.Count; i++)
{
this.dataGridView1.Rows[i].Cells[0].Value = 1;
}
num = 1;
btnAll.Text = "取消全选";
}
else
{
// 把datagridview的所有记录的第一列的复选框设为不选
for (int i = 0; i < this.dataGridView1.Rows.Count; i++)
{
this.dataGridView1.Rows[i].Cells[0].Value = 0;
}
num = 0;
btnAll.Text = "全选";
}
#42
老贴,现在看到依旧可以感受到 老鸟们的热情,顶!
#1
用一个循环嘛
#2
大哥.我是个新手.请帮下忙.我都找不到这个checkbox
不知道如何来做.
不知道如何来做.
#3
就是找不到这个复选框的值.不知道它是否被选中.
#4
((checkBox)(datagridview.rows[1].cell[1])).check == false/true。。。
具体全选的话,你就触发全选事件的时候再把在循环中把所有的checkbox=true,反之为false
具体全选的话,你就触发全选事件的时候再把在循环中把所有的checkbox=true,反之为false
#5
foreach (DataGridViewRow dr in this.dataGridView1.Rows)
{
(bool)dr.Cells[0].Value = true;
}
试一下
我没有作具体的试验,你可以用这个方法试一下,应该可以
{
(bool)dr.Cells[0].Value = true;
}
试一下
我没有作具体的试验,你可以用这个方法试一下,应该可以
#6
注意 数据源是什么
#7
用
girdview.rows.count
girdview.rows.findcontrol(复选框名字)
可以用一个循环实现.
girdview.rows.count
girdview.rows.findcontrol(复选框名字)
可以用一个循环实现.
#8
各位大哥.能不能弄具体一点儿.谢谢了...
因为我想做一个全选和反选来进行删除.
但是做了很久一直没有做出来.
因为我想做一个全选和反选来进行删除.
但是做了很久一直没有做出来.
#9
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="GridView_CheckBoxColumn.aspx.cs" Inherits="GridSamples_GridView_CheckBoxColumn" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>无标题页</title>
<script language="javascript" type="text/javascript">
function selectAll(obj)
{
var theTable = obj.parentElement.parentElement.parentElement;
var i;
var j = obj.parentElement.cellIndex;
for(i=0;i<theTable.rows.length;i++)
{
var objCheckBox = theTable.rows[i].cells[j].firstChild;
if(objCheckBox.checked!=null)objCheckBox.checked = obj.checked;
}
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:GridView ID="GridView1" runat="server" AllowPaging="True" AutoGenerateColumns="False"
DataKeyNames="id" DataSourceID="AccessDataSource1" AllowSorting="True" OnDataBinding="GridView1_DataBinding" OnRowDataBound="GridView1_RowDataBound">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server" Checked="True" Text='<%#DataBinder.Eval(Container.DataItem,"id") %>' />
</ItemTemplate>
<HeaderTemplate>
<input id="CheckAll" type="checkbox" onclick="selectAll(this);" />本页全选
</HeaderTemplate>
</asp:TemplateField>
<asp:BoundField DataField="id" HeaderText="id" InsertVisible="False" ReadOnly="True"
SortExpression="id" />
<asp:BoundField DataField="name" HeaderText="name" SortExpression="name" />
<asp:BoundField DataField="sex" HeaderText="sex" SortExpression="sex" />
<asp:BoundField DataField="deptid" HeaderText="deptid" SortExpression="deptid" />
</Columns>
</asp:GridView>
<asp:AccessDataSource ID="AccessDataSource1" runat="server" DataFile="~/App_Data/test.mdb"
SelectCommand="SELECT [id], [name], [sex], [deptid] FROM [employees]"></asp:AccessDataSource>
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="ShowAllSelectedItem" />
<asp:TextBox ID="TextBox1" runat="server" Width="200px" ReadOnly="True"></asp:TextBox></div>
</form>
</body>
</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>无标题页</title>
<script language="javascript" type="text/javascript">
function selectAll(obj)
{
var theTable = obj.parentElement.parentElement.parentElement;
var i;
var j = obj.parentElement.cellIndex;
for(i=0;i<theTable.rows.length;i++)
{
var objCheckBox = theTable.rows[i].cells[j].firstChild;
if(objCheckBox.checked!=null)objCheckBox.checked = obj.checked;
}
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:GridView ID="GridView1" runat="server" AllowPaging="True" AutoGenerateColumns="False"
DataKeyNames="id" DataSourceID="AccessDataSource1" AllowSorting="True" OnDataBinding="GridView1_DataBinding" OnRowDataBound="GridView1_RowDataBound">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server" Checked="True" Text='<%#DataBinder.Eval(Container.DataItem,"id") %>' />
</ItemTemplate>
<HeaderTemplate>
<input id="CheckAll" type="checkbox" onclick="selectAll(this);" />本页全选
</HeaderTemplate>
</asp:TemplateField>
<asp:BoundField DataField="id" HeaderText="id" InsertVisible="False" ReadOnly="True"
SortExpression="id" />
<asp:BoundField DataField="name" HeaderText="name" SortExpression="name" />
<asp:BoundField DataField="sex" HeaderText="sex" SortExpression="sex" />
<asp:BoundField DataField="deptid" HeaderText="deptid" SortExpression="deptid" />
</Columns>
</asp:GridView>
<asp:AccessDataSource ID="AccessDataSource1" runat="server" DataFile="~/App_Data/test.mdb"
SelectCommand="SELECT [id], [name], [sex], [deptid] FROM [employees]"></asp:AccessDataSource>
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="ShowAllSelectedItem" />
<asp:TextBox ID="TextBox1" runat="server" Width="200px" ReadOnly="True"></asp:TextBox></div>
</form>
</body>
</html>
#10
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class GridSamples_GridView_CheckBoxColumn : System.Web.UI.Page
{
/// <summary>
/// 获取或设置选中项的集合
/// </summary>
protected ArrayList SelectedItems
{
get
{
return (ViewState["mySelectedItems"] != null) ? (ArrayList)ViewState["mySelectedItems"] : null;
}
set
{
ViewState["mySelectedItems"] = value;
}
}
protected void Page_Load(object sender, EventArgs e)
{
}
protected void GridView1_DataBinding(object sender, EventArgs e)
{
//在每一次重新绑定之前,需要调用CollectSelected方法从当前页收集选中项的情况
CollectSelected();
}
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
//这里的处理是为了回显之前选中的情况
if (e.Row.RowIndex > -1 && this.SelectedItems!=null)
{
DataRowView row = e.Row.DataItem as DataRowView;
CheckBox cb = e.Row.FindControl("CheckBox1") as CheckBox;
if(this.SelectedItems.Contains(row["id"].ToString()))
cb.Checked = true;
else
cb.Checked = false;
}
}
/// <summary>
/// 从当前页收集选中项的情况
/// </summary>
protected void CollectSelected()
{
ArrayList selectedItems = null;
if (this.SelectedItems == null)
selectedItems = new ArrayList();
else
selectedItems = this.SelectedItems;
for (int i = 0; i < this.GridView1.Rows.Count; i++)
{
string id = this.GridView1.Rows[i].Cells[1].Text;
CheckBox cb = this.GridView1.Rows[i].FindControl("CheckBox1") as CheckBox;
if (selectedItems.Contains(id) && !cb.Checked)
selectedItems.Remove(id);
if (!selectedItems.Contains(id) && cb.Checked)
selectedItems.Add(id);
}
this.SelectedItems = selectedItems;
}
protected void Button1_Click(object sender, EventArgs e)
{
//最后,需要对选中项进行操作之前,不能忘了还要最后一次收集当前页的选中情况
CollectSelected();
this.TextBox1.Text = string.Empty;
foreach (object tmp in this.SelectedItems)
this.TextBox1.Text += tmp.ToString() + ",";
}
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class GridSamples_GridView_CheckBoxColumn : System.Web.UI.Page
{
/// <summary>
/// 获取或设置选中项的集合
/// </summary>
protected ArrayList SelectedItems
{
get
{
return (ViewState["mySelectedItems"] != null) ? (ArrayList)ViewState["mySelectedItems"] : null;
}
set
{
ViewState["mySelectedItems"] = value;
}
}
protected void Page_Load(object sender, EventArgs e)
{
}
protected void GridView1_DataBinding(object sender, EventArgs e)
{
//在每一次重新绑定之前,需要调用CollectSelected方法从当前页收集选中项的情况
CollectSelected();
}
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
//这里的处理是为了回显之前选中的情况
if (e.Row.RowIndex > -1 && this.SelectedItems!=null)
{
DataRowView row = e.Row.DataItem as DataRowView;
CheckBox cb = e.Row.FindControl("CheckBox1") as CheckBox;
if(this.SelectedItems.Contains(row["id"].ToString()))
cb.Checked = true;
else
cb.Checked = false;
}
}
/// <summary>
/// 从当前页收集选中项的情况
/// </summary>
protected void CollectSelected()
{
ArrayList selectedItems = null;
if (this.SelectedItems == null)
selectedItems = new ArrayList();
else
selectedItems = this.SelectedItems;
for (int i = 0; i < this.GridView1.Rows.Count; i++)
{
string id = this.GridView1.Rows[i].Cells[1].Text;
CheckBox cb = this.GridView1.Rows[i].FindControl("CheckBox1") as CheckBox;
if (selectedItems.Contains(id) && !cb.Checked)
selectedItems.Remove(id);
if (!selectedItems.Contains(id) && cb.Checked)
selectedItems.Add(id);
}
this.SelectedItems = selectedItems;
}
protected void Button1_Click(object sender, EventArgs e)
{
//最后,需要对选中项进行操作之前,不能忘了还要最后一次收集当前页的选中情况
CollectSelected();
this.TextBox1.Text = string.Empty;
foreach (object tmp in this.SelectedItems)
this.TextBox1.Text += tmp.ToString() + ",";
}
#11
for(int i=0;i<this.dg.rows.count;i++)
{
((checkbox)(this.dg.rows[i].cell[1].text)).checkd == true //全选
}
领会精神
{
((checkbox)(this.dg.rows[i].cell[1].text)).checkd == true //全选
}
领会精神
#12
我是想在C#里做.不是asp里.
#13
不知道在C#里怎么来找这个checkbox.ASP里到好做一些.可是现在就是做不出来.不知道从做着手了.
人都晕了.
人都晕了.
#14
首先要一个事件来相应你后台的方法,来遍历datagridview获取每行的checkbox
#15
大哥!我就是不知道怎么弄了.人都晕了..麻烦明白一些!!!
#16
你可以用DataTable进行绑定,在dataGridView中进行更改是不需要进行判断的.
在保存的时候直接保存DataTable 声明的dt就可以了.
在保存的时候直接保存DataTable 声明的dt就可以了.
#17
//全选复选框状态改变的事件
private void chkChooseAll_CheckedChanged(object sender, EventArgs e)
{
foreach (ListViewItem item in lsvSubject.Items) {
item.Checked = chkChooseAll.Checked;//每一项状态都与全选复选框状态相同
}
}
这是我做过的一个全选复选框的例子,不过是用的ListView,参照着改改就行了。
private void chkChooseAll_CheckedChanged(object sender, EventArgs e)
{
foreach (ListViewItem item in lsvSubject.Items) {
item.Checked = chkChooseAll.Checked;//每一项状态都与全选复选框状态相同
}
}
这是我做过的一个全选复选框的例子,不过是用的ListView,参照着改改就行了。
#18
老大!我找不到这个checked这个事件...所以不知道怎么做呀...
因为这个checkbox是在datagridview中添加的列...
所以先要找这个checkbox这个东东...
因为这个checkbox是在datagridview中添加的列...
所以先要找这个checkbox这个东东...
#19
function CheckAll()
{
var Collection=document.getElementsByName("ChangeState");
var CheckAll=document.getElementById("ChkAll");
for(var i=0;i<Collection.length;i++)
{
Collection[i].checked=CheckAll.checked;
}
}
<asp:GridView ID="UserList" runat="server" Width=800px AutoGenerateColumns="False" AllowPaging="True" OnPageIndexChanging="UserList_PageIndexChanging" PageSize="20"
SelectedRowStyle-CssClass="datagridSelectedItem" RowStyle-CssClass="datagridItem" HeaderStyle-CssClass="datagridHeader">
<RowStyle HorizontalAlign="Center" CssClass="datagridItem"/>
<Columns>
<asp:TemplateField HeaderText="用户名">
<ItemTemplate>
<div id="oprator<%# DataBinder.Eval(Container.DataItem, "UserID")%>" onmouseover="LookUpInfo(oprator<%# DataBinder.Eval(Container.DataItem, "UserID")%>)" onmouseout="hidden()" title="<%# DataBinder.Eval(Container.DataItem, "UserID")%>"><%# DataBinder.Eval(Container.DataItem, "LoginName")%></div>
</ItemTemplate>
<HeaderStyle HorizontalAlign="Center" VerticalAlign="Middle" />
</asp:TemplateField>
<asp:TemplateField HeaderText="角 色">
<ItemTemplate>
<a title="点击修改该用户角色" href="#" style="cursor:hand" onclick="window.open('UserRole.aspx?UserID=<%# DataBinder.Eval(Container.DataItem, "UserID") %>&RoleType=1','null','height=200,width=300,status=no,toolbar=no,menubar=no,location=no')"><%# DataBinder.Eval(Container.DataItem, "Name") %></a>
</ItemTemplate>
<HeaderStyle HorizontalAlign="Center" VerticalAlign="Middle" />
</asp:TemplateField>
<asp:TemplateField HeaderText="上 级">
<ItemTemplate>
<%#GetParentInfo(int.Parse(DataBinder.Eval(Container.DataItem, "ParentID").ToString()))%>
</ItemTemplate>
<HeaderStyle HorizontalAlign="Center" VerticalAlign="Middle" />
</asp:TemplateField>
<asp:TemplateField HeaderText="下 级">
<ItemTemplate>
<a href="SubUsersList.aspx?ParentID=<%# DataBinder.Eval(Container.DataItem, "UserID")%>" title="下级人员资料">查看</a>
</ItemTemplate>
<HeaderStyle HorizontalAlign="Center" VerticalAlign="Middle" />
</asp:TemplateField>
<asp:TemplateField HeaderText="帐户余额">
<ItemTemplate>
<%# DataBinder.Eval(Container.DataItem, "AccountFee")%>
</ItemTemplate>
<HeaderStyle HorizontalAlign="Center" VerticalAlign="Middle" />
</asp:TemplateField>
<asp:TemplateField HeaderText="安全状态">
<ItemTemplate>
<A title="<%#(DataBinder.Eval(Container.DataItem, "SafeState").ToString())=="0"?"未绑定":"已绑定CPU,网卡,硬盘" %>"><%# (DataBinder.Eval(Container.DataItem, "SafeState").ToString())=="0"?"<font color='red'>未绑定</font>":"<font color='blue'>已绑定</font>"%></A>
</ItemTemplate>
<HeaderStyle HorizontalAlign="Center" VerticalAlign="Middle" />
</asp:TemplateField>
<asp:TemplateField HeaderText="密码重置">
<ItemTemplate>
<a href="PasswordReset.aspx?UserID=<%# DataBinder.Eval(Container.DataItem, "UserID")%>" title="重置">重置</a>
</ItemTemplate>
<HeaderStyle HorizontalAlign="Center" VerticalAlign="Middle" />
</asp:TemplateField>
<asp:TemplateField HeaderText="帐户状态">
<ItemTemplate>
<a href="UserList.aspx?flag=<%# DataBinder.Eval(Container.DataItem, "UserID")%>"><%# Boolean.Parse((DataBinder.Eval(Container.DataItem, "IsForbid").ToString())) == false ? "<font color='blue'>正常</font>" : "<font color='Red'>禁用</font>"%></a>
</ItemTemplate>
<HeaderStyle HorizontalAlign="Center" VerticalAlign="Middle" />
</asp:TemplateField>
<asp:TemplateField HeaderText="状态更改">
<ItemTemplate>
<input id="ChangeState" name="ChangeState" type="checkbox" value='<%# DataBinder.Eval(Container.DataItem, "UserID")%>' />
</ItemTemplate>
<HeaderStyle HorizontalAlign="Center" VerticalAlign="Middle" />
</asp:TemplateField>
</Columns>
<PagerSettings Mode="NextPrevious" NextPageText="下一页" PreviousPageText="上一页" />
<SelectedRowStyle CssClass="datagridSelectedItem" />
<HeaderStyle CssClass="datagridHeader" />
</asp:GridView>
</td>
</tr>
<tr id="update" runat="server">
<td align="right">选择全部<input id="ChkAll" name="ChkAll" onclick="CheckAll()" type="checkbox" /><asp:Button ID="BtnModify" runat="server" Text="状态修改" OnClick="BtnModify_Click" CssClass="ManagerButton" /></td>
</tr>
</table>
#20
function ChkAllorNot()
{
var objChk;
objChk = document.getElementById("ckbCheckAll");
if (objChk.checked==true)
{
for (var i = 0; i < document.form1.elements.length; i++)
{
theelement = document.form1.elements[i];
if (theelement.type == 'checkbox')
{
if (theelement != document.getElementById("ckbCheckAll"))
{
if (theelement.disabled==false)
{
theelement.checked= true;
}
}
}
}
}
else
{
for (var i = 0; i < document.form1.elements.length; i++)
{
theelement = document.form1.elements[i];
if (theelement.type == 'checkbox')
{
if (theelement != document.getElementById("ckbCheckAll"))
{
if (theelement.disabled==false)
{
theelement.checked= false;
}
}
}
}
}
}
這是寫在前台的方法,只需要在后太注冊就可以了!
ckbCheckAll.Attributes.Add("onclick", "ChkAllorNot()")
{
var objChk;
objChk = document.getElementById("ckbCheckAll");
if (objChk.checked==true)
{
for (var i = 0; i < document.form1.elements.length; i++)
{
theelement = document.form1.elements[i];
if (theelement.type == 'checkbox')
{
if (theelement != document.getElementById("ckbCheckAll"))
{
if (theelement.disabled==false)
{
theelement.checked= true;
}
}
}
}
}
else
{
for (var i = 0; i < document.form1.elements.length; i++)
{
theelement = document.form1.elements[i];
if (theelement.type == 'checkbox')
{
if (theelement != document.getElementById("ckbCheckAll"))
{
if (theelement.disabled==false)
{
theelement.checked= false;
}
}
}
}
}
}
這是寫在前台的方法,只需要在后太注冊就可以了!
ckbCheckAll.Attributes.Add("onclick", "ChkAllorNot()")
#21
你直接判断checkbox列的每个单元格的value是否等于1就行了,选中为1,没选中就为0。
同样,你也可以用1或者0去赋值,checkbox列就会变为选中或者不选中。
同样,你也可以用1或者0去赋值,checkbox列就会变为选中或者不选中。
#22
各位老大些....是在C#里!
我做的是窗口程序...不是ASP...
那个checkbox是在datagridview中添加的列....
现在是要在datagridview中先找到复选框才可以进行操作........
我做的是窗口程序...不是ASP...
那个checkbox是在datagridview中添加的列....
现在是要在datagridview中先找到复选框才可以进行操作........
#23
这个简单,.不就全选吗 是不是这样子 是的话 你发个邮件到我邮箱 我发源码给你
#24
你要的是WinFrom下的还是WebForm下的?
#25
winfrom的 窗口程序...
不是做网页
是C# 2005中 datagridview 中加的checkbox列
不是做网页
是C# 2005中 datagridview 中加的checkbox列
#26
for (int i = 0; i < dgMovie.Rows.Count; i++)
{
if (dgMovie.Rows[i].Cells["列名或索引"].Value as bool)
{
dgMovie.Rows[i].Cells["列名或索引"].Value = false;
}
else
{
dgMovie.Rows[i].Cells["列名或索引"].Value = true;
}
}
这是反选
#27
晕,上面的dgMovie时某datagridview,嘿嘿,忘记说了
#28
as boll 那儿要报错......
#29
as bool 那儿有报错......
不过你的答案我觉得已经快要成功了....但是总觉得还差一些什么东东...
大家帮下忙.....
不过你的答案我觉得已经快要成功了....但是总觉得还差一些什么东东...
大家帮下忙.....
#30
报错是不是未将对象引用设置到对象实例?
因为这个dgMovie.Rows[i].Cells["列名或索引"].Value 的value有可能时null,这个处理一下好了,比如
因为这个dgMovie.Rows[i].Cells["列名或索引"].Value 的value有可能时null,这个处理一下好了,比如
if(value == null)
{
dgMovie.Rows[i].Cells["列名或索引"].Value = false;
}
#31
放在全部选中的事件里...
foreach(DataGridItem item in this.dgMaterialList.Items)
{
System.Web.UI.HtmlControls.HtmlInputCheckBox chk=(System.Web.UI.HtmlControls.HtmlInputCheckBox)item.Cells[0].Controls[0];
chk.Checked = true;
}
foreach(DataGridItem item in this.dgMaterialList.Items)
{
System.Web.UI.HtmlControls.HtmlInputCheckBox chk=(System.Web.UI.HtmlControls.HtmlInputCheckBox)item.Cells[0].Controls[0];
chk.Checked = true;
}
#32
不是ASP.NET 现在做的窗口程序.....
winfrom的 窗口程序...
不是做网页
是C# 2005中 datagridview 中加的checkbox列
大哥些...帮下忙....
winfrom的 窗口程序...
不是做网页
是C# 2005中 datagridview 中加的checkbox列
大哥些...帮下忙....
#33
<script language="javascript" event="onclick" for="chkAll">
var allInput = document.getElementsByTagName("input");
//alert(allInput.length);
var lang = allInput.length;
for(i=0;i<lang;i++)
{
//alert(i);
if(document.Form1.chkAll.checked == true)
{
//alert(allInput[i].type);
if(allInput[i].type == "checkbox")
{
allInput[i].checked = true;
}
}
else
{
if(allInput[i].type == "checkbox")
{
allInput[i].checked = false;
}
}
}
</script>
var allInput = document.getElementsByTagName("input");
//alert(allInput.length);
var lang = allInput.length;
for(i=0;i<lang;i++)
{
//alert(i);
if(document.Form1.chkAll.checked == true)
{
//alert(allInput[i].type);
if(allInput[i].type == "checkbox")
{
allInput[i].checked = true;
}
}
else
{
if(allInput[i].type == "checkbox")
{
allInput[i].checked = false;
}
}
}
</script>
#34
不是ASP.NET 现在做的窗口程序.....
winfrom的 窗口程序...
不是做网页
是C# 2005中 datagridview 中加的checkbox列
大哥些...帮下忙....
winfrom的 窗口程序...
不是做网页
是C# 2005中 datagridview 中加的checkbox列
大哥些...帮下忙....
#35
哥们问题解决了没?
我给你个全选和全不选的代码,不知道能不能满足你的要求,我的代码就是在datagridview中加一列复选框(这列复选框是在datagridview中添加列里边加的datagridviewcheckboxcolumn索引为0,也就是在datagridview的第一列),然后可以控制他们是否全选和全不选:
private void btnSelectAll_Click(object sender, EventArgs e)
{
//把datagridview的所有记录的第一列的复选框设为选中
for (int i = 0; i < dataGridView.Rows.Count; i++)
{
this.dataGridView.Rows[i].Cells[0].Value = true;
}
}
private void btnCancelAll_Click(object sender, EventArgs e)
{
//把datagridview的所有记录的第一列的复选框设为不选
for (int i = 0; i < datagridview.Rows.Count; i++)
{
this.datagridview.Rows[i].Cells[0].Value = false;
}
}
//提交当前复选框的选择状态,复选框选或不选要提交下
private void dataGridView_CurrentCellDirtyStateChanged(object sender, EventArgs e)
{
this.dataGridView.CommitEdit(DataGridViewDataErrorContexts.Commit);
}
//哥们要是符合你的需求的话,把分给了啊,哥们我穷死拉!:)
我给你个全选和全不选的代码,不知道能不能满足你的要求,我的代码就是在datagridview中加一列复选框(这列复选框是在datagridview中添加列里边加的datagridviewcheckboxcolumn索引为0,也就是在datagridview的第一列),然后可以控制他们是否全选和全不选:
private void btnSelectAll_Click(object sender, EventArgs e)
{
//把datagridview的所有记录的第一列的复选框设为选中
for (int i = 0; i < dataGridView.Rows.Count; i++)
{
this.dataGridView.Rows[i].Cells[0].Value = true;
}
}
private void btnCancelAll_Click(object sender, EventArgs e)
{
//把datagridview的所有记录的第一列的复选框设为不选
for (int i = 0; i < datagridview.Rows.Count; i++)
{
this.datagridview.Rows[i].Cells[0].Value = false;
}
}
//提交当前复选框的选择状态,复选框选或不选要提交下
private void dataGridView_CurrentCellDirtyStateChanged(object sender, EventArgs e)
{
this.dataGridView.CommitEdit(DataGridViewDataErrorContexts.Commit);
}
//哥们要是符合你的需求的话,把分给了啊,哥们我穷死拉!:)
#36
判断某条记录是否被选中:
if(dataGridView.Rows.Cuount!=0)//当前的记录不为空
{
for(int i=0;i<dataGridView.Rows.Count;i++)
{
if(dataGridView.Rows[i].Cell[0].EditedFormattedValue.ToString()=="True")//或者=="False"
{
//处理代码
}
}
}
if(dataGridView.Rows.Cuount!=0)//当前的记录不为空
{
for(int i=0;i<dataGridView.Rows.Count;i++)
{
if(dataGridView.Rows[i].Cell[0].EditedFormattedValue.ToString()=="True")//或者=="False"
{
//处理代码
}
}
}
#37
兄弟.你太好了....反选呢?
#38
你进入你那个帖子后,点“管理帖子”按钮,进入帖子管理界面,找到我给你回复的那楼也就是35和36楼,有个得分的输入框,在里边输入分数,然后上边有个密码输入框,点结帖就行了,领导在呢,不方便qq,呵呵!
#39
俺是新手,也用到这个,呵呵,学学~~~~
#40
我想问一下36楼的哥们儿啊,你的那个全选和反选是设置了两个按钮吧。可不可以只设置一个按钮,并且让按钮上面的字在全选和不全选之间切换啊。急啊,谢谢啊
#41
我已经知道了
if (num == 0)
{
// 把datagridview的所有记录的第一列的复选框设为选中
for (int i = 0; i < this.dataGridView1.Rows.Count; i++)
{
this.dataGridView1.Rows[i].Cells[0].Value = 1;
}
num = 1;
btnAll.Text = "取消全选";
}
else
{
// 把datagridview的所有记录的第一列的复选框设为不选
for (int i = 0; i < this.dataGridView1.Rows.Count; i++)
{
this.dataGridView1.Rows[i].Cells[0].Value = 0;
}
num = 0;
btnAll.Text = "全选";
}
if (num == 0)
{
// 把datagridview的所有记录的第一列的复选框设为选中
for (int i = 0; i < this.dataGridView1.Rows.Count; i++)
{
this.dataGridView1.Rows[i].Cells[0].Value = 1;
}
num = 1;
btnAll.Text = "取消全选";
}
else
{
// 把datagridview的所有记录的第一列的复选框设为不选
for (int i = 0; i < this.dataGridView1.Rows.Count; i++)
{
this.dataGridView1.Rows[i].Cells[0].Value = 0;
}
num = 0;
btnAll.Text = "全选";
}
#42
老贴,现在看到依旧可以感受到 老鸟们的热情,顶!