日期:2014-05-18  浏览次数:20531 次

关于gridview加上一个checkbox
我想在一个gridview最左边加上一checkbox,当我选中其中一些的时候获取后面的数据,但是总是搞不定,请那位高手帮忙看下,谢谢了。

------解决方案--------------------
在GIRDVIEW内加入
<asp:TemplateField>
<HeaderTemplate>
<input id= "CheckAll " type= "checkbox " onclick= "selectAll(this); " />
<input id= "choi " type= "button " onclick= "choice(this); " value= "反向选择 "/>
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox ID= "CheckBox1 " runat= "server " />
</ItemTemplate>
</asp:TemplateField>


在 <HEAD> </HEAD> 中加入JS代码 定义全选按钮
<script language= "javascript " type= "text/javascript ">
// 下面这段代码不用修改,checkbox在第几列都可以
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;
// 可以添加一个按钮,做反向选择
// objCheckBox.checked=!objCheckBox.checked;
}
}

后台:
CheckBox cb;
cb = (CheckBox)row.FindControl( "checkbox1 ");//取得当前行的checkbox

用FindControl,取出ID的直 应该是row.Cells[0].Text.ToString() 之后做什么操作都可以咯~~
比如删除操作.自己应该知道了. 我说的很详细了吧~~
------解决方案--------------------
前台 模板列中加入
----------------------
<asp:CheckBox ID= "CheckBox1 " OnCheckedChanged= "CheckBox_CheckedChanged " AutoPostBack= "true " runat= "server " />

后台
----------------------
protected void CheckBox_CheckedChanged(object sender, EventArgs e)
{
// 获得当前 CheckBox 所在的 GridViewRow
GridViewRow currentRow = ((CheckBox)sender).Parent.Parent as GridViewRow;

// 以下可以对 GridViewRow 行进其它操作
Response.Write(currentRow.Cells[0].Text);

// ...

}

----------------------

代码我没测试,估计应该好用...