通过 javascript 访问 GridView/DataGrid 选中 CheckBox 行各列的值
2010-09-29 10:35
465 查看
/article/4756819.html
功能需求
1, 单击 checkbox 返回当前行值
2, 外部按钮获取所有选择行的值
实现说明
参见主要代码,代码为自说明式。
主要代码
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox ID="chkItem1" runat="server" onclick="if(this.checked) alert(getRowValue(this))" />
<%
--OR--%>
<%
--<input type="checkbox" id="chkItem2" onclick="if(this.checked) alert(getRowValue(this))" />--%>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="ProductName" >
<ItemTemplate><%
# Eval("ProductName") %></ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="UnitPrice" HeaderText="UnitPrice" />
</Columns>
</asp:GridView>
<script type ="text/javascript">
/**//**
返回 chk 所在行的单元格值
@param chk 表示行中的 input type=check 对象
*/
function getRowValue(chk)
{
//debugger;
// if(sender.checked) { // 根据实际情况,决定是否进行选中状态判断
var tblRow = chk.parentNode.parentNode;
// 改变 tblRow.cells[<cellIndex>] 中占位符 <cellIndex> 访问不同单元格
//return tblRow.cells[1].innerText + ", " + tblRow.cells[2].innerText;
return tblRow.cells[1].innerHTML + ", " + tblRow.cells[2].innerHTML;
// }
}
/**//**
返回指定 grdId 中所有选中行的单元格值
@param grdId 表示 GridView/DataGrid 客户端 ID,实际上他们均呈现为 <table />
@param chkIdPart 表示待处理 input type=check 控件的 ID 中的部分,考虑行中可能存在多个 checkbox, 通过此参数可以准确确定目标
*/
function getAllRowValue(grdId, chkIdPart)
{
//debugger;
var tbl = document.getElementById(grdId);
var chkList;
var txt = "";
/**//* 方法1
for(var i = 0; i < tbl.rows.length; i++) { // 遍历行
chkList = tbl.rows[i].getElementsByTagName("input"); // 返回当前行内嵌的所有 input 控件
for(var j = 0; j < chkList.length; j++) {
// 多条件准确确定目标 checkbox
if(chkList[j].type == "checkbox" && chkList[j].checked && chkList[j].id.indexOf(chkIdPart) > -1) {
txt += getRowValue(chkList[j]) + "/n";
break;
}
}
}*/
/**//* 方法2 */
chkList = tbl.getElementsByTagName("input"); // 返回表内嵌的所有 input 控件
for(var j = 0; j < chkList.length; j++)
{
// 多条件准确确定目标 checkbox
if(chkList[j].type == "checkbox" && chkList[j].checked && chkList[j].id.indexOf(chkIdPart) > -1)
{
txt += getRowValue(chkList[j]) + "/n";
}
}
return txt;
}
</script>
功能需求
1, 单击 checkbox 返回当前行值
2, 外部按钮获取所有选择行的值
实现说明
参见主要代码,代码为自说明式。
主要代码
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox ID="chkItem1" runat="server" onclick="if(this.checked) alert(getRowValue(this))" />
<%
--OR--%>
<%
--<input type="checkbox" id="chkItem2" onclick="if(this.checked) alert(getRowValue(this))" />--%>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="ProductName" >
<ItemTemplate><%
# Eval("ProductName") %></ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="UnitPrice" HeaderText="UnitPrice" />
</Columns>
</asp:GridView>
<script type ="text/javascript">
/**//**
返回 chk 所在行的单元格值
@param chk 表示行中的 input type=check 对象
*/
function getRowValue(chk)
{
//debugger;
// if(sender.checked) { // 根据实际情况,决定是否进行选中状态判断
var tblRow = chk.parentNode.parentNode;
// 改变 tblRow.cells[<cellIndex>] 中占位符 <cellIndex> 访问不同单元格
//return tblRow.cells[1].innerText + ", " + tblRow.cells[2].innerText;
return tblRow.cells[1].innerHTML + ", " + tblRow.cells[2].innerHTML;
// }
}
/**//**
返回指定 grdId 中所有选中行的单元格值
@param grdId 表示 GridView/DataGrid 客户端 ID,实际上他们均呈现为 <table />
@param chkIdPart 表示待处理 input type=check 控件的 ID 中的部分,考虑行中可能存在多个 checkbox, 通过此参数可以准确确定目标
*/
function getAllRowValue(grdId, chkIdPart)
{
//debugger;
var tbl = document.getElementById(grdId);
var chkList;
var txt = "";
/**//* 方法1
for(var i = 0; i < tbl.rows.length; i++) { // 遍历行
chkList = tbl.rows[i].getElementsByTagName("input"); // 返回当前行内嵌的所有 input 控件
for(var j = 0; j < chkList.length; j++) {
// 多条件准确确定目标 checkbox
if(chkList[j].type == "checkbox" && chkList[j].checked && chkList[j].id.indexOf(chkIdPart) > -1) {
txt += getRowValue(chkList[j]) + "/n";
break;
}
}
}*/
/**//* 方法2 */
chkList = tbl.getElementsByTagName("input"); // 返回表内嵌的所有 input 控件
for(var j = 0; j < chkList.length; j++)
{
// 多条件准确确定目标 checkbox
if(chkList[j].type == "checkbox" && chkList[j].checked && chkList[j].id.indexOf(chkIdPart) > -1)
{
txt += getRowValue(chkList[j]) + "/n";
}
}
return txt;
}
</script>
相关文章推荐
- 【转帖】如何通过 javascript 访问 GridView/DataGrid 选中 CheckBox 行各列的值
- 如何通过 javascript 访问 GridView/DataGrid 选中 CheckBox 行各列的值
- ASP.NET DEMO 10: 如何通过 javascript 访问 GridView/DataGrid 选中 CheckBox 行各列的值
- ASP.NET DEMO 10: 如何通过 javascript 访问 GridView/DataGrid 选中 CheckBox 行各列的值
- Javascript取得gridview中获取checkbox选中的值
- javascript判断gridview中的checkbox是否选中!
- JavaScript取得gridview中获取checkbox选中的值
- datagrid 和 gridview 与checkbox 获取所选中的id的方法
- GridView绑定radionbutton和checkbox并且用javascript判断是否全部选中
- asp.net(C#)通过点击一个checkbox,gridview里面的checkbox全部选中
- asp.net(C#)通过点击一个checkbox,gridview里面的checkbox全部选中
- JavaScript判断Gridview中Checkbox列是否选中~
- asp.net(C#)通过点击一个checkbox,gridview里面的checkbox全部选中
- GridView控件(七)——改变通过CheckBox选中的行的样式
- 通过CheckBox选中多个GridView的记录
- uniform 中checkbox通过jquery 选中
- JavaScript 通过Ajax 动态加载CheckBox复选框
- 用javascript操纵GridView中CheckBox的两个常用技巧
- GridView通过Container在前台页面访问并找到绑定模版中控件
- GridView CheckBox当翻页时保存选中的项