ASP.NET DEMO 10: 如何通过 javascript 访问 GridView/DataGrid 选中 CheckBox 行各列的值

功能需求

1,  单击 checkbox 返回当前行值
2,  外部按钮获取所有选择行的值


实现说明

参见主要代码,代码为自说明式。


主要代码

None.gif < asp:GridView  ID ="GridView1"  runat ="server"  AutoGenerateColumns ="false" >
None.gif            
< Columns >                               
None.gif                
< asp:TemplateField >
None.gif                    
< ItemTemplate >                         
None.gif                        
< asp:CheckBox  ID ="chkItem1"  runat ="server"  onclick ="if(this.checked) alert(getRowValue(this))"   />
ExpandedBlockStart.gifContractedBlock.gif                        
<% dot.gif --OR-- %>
ExpandedBlockStart.gifContractedBlock.gif                        
<% dot.gif --<input type="checkbox" id="chkItem2" onclick="if(this.checked) alert(getRowValue(this))" />-- %>
None.gif                    
</ ItemTemplate >
None.gif                
</ asp:TemplateField >
None.gif                
< asp:TemplateField  HeaderText ="ProductName"   >
ExpandedBlockStart.gifContractedBlock.gif                    
< ItemTemplate > <% dot.gif Eval("ProductName" %> </ ItemTemplate >
None.gif                
</ asp:TemplateField >
None.gif                
< asp:BoundField  DataField ="UnitPrice"  HeaderText ="UnitPrice"   />
None.gif            
</ Columns >
None.gif        
</ asp:GridView >

None.gif < script type  = " text/javascript " >
ExpandedBlockStart.gifContractedBlock.gif    
/**/ /**
InBlock.gif       返回 chk 所在行的单元格值
InBlock.gif       @param chk 表示行中的 input type=check 对象
ExpandedBlockEnd.gif    
*/

None.gif    
function  getRowValue(chk)
ExpandedBlockStart.gifContractedBlock.gif    
dot.gif {   
InBlock.gif        
//debugger;
InBlock.gif//
        if(sender.checked) {  // 根据实际情况,决定是否进行选中状态判断
InBlock.gif
            var tblRow = chk.parentNode.parentNode;
InBlock.gif            
// 改变 tblRow.cells[<cellIndex>] 中占位符 <cellIndex> 访问不同单元格
InBlock.gif
            //return tblRow.cells[1].innerText + ", " + tblRow.cells[2].innerText;
InBlock.gif
            return tblRow.cells[1].innerHTML + "" + tblRow.cells[2].innerHTML;
InBlock.gif
//        }
ExpandedBlockEnd.gif
    }

None.gif    
ExpandedBlockStart.gifContractedBlock.gif    
/**/ /**       
InBlock.gif       返回指定 grdId 中所有选中行的单元格值
InBlock.gif       @param grdId 表示 GridView/DataGrid 客户端 ID,实际上他们均呈现为 <table />
InBlock.gif       @param chkIdPart 表示待处理 input type=check 控件的 ID 中的部分,考虑行中可能存在多个 checkbox, 通过此参数可以准确确定目标
ExpandedBlockEnd.gif    
*/

None.gif    
function  getAllRowValue(grdId, chkIdPart)
ExpandedBlockStart.gifContractedBlock.gif    
dot.gif {
InBlock.gif        
//debugger;
InBlock.gif
        var tbl = document.getElementById(grdId);
InBlock.gif        
var chkList;
InBlock.gif        
var txt = "";
ExpandedSubBlockStart.gifContractedSubBlock.gif        
/**//* 方法1
InBlock.gif        for(var i = 0; i < tbl.rows.length; i++) { // 遍历行
InBlock.gif            chkList = tbl.rows[i].getElementsByTagName("input"); // 返回当前行内嵌的所有 input 控件
InBlock.gif            for(var j = 0; j < chkList.length; j++) {
InBlock.gif                // 多条件准确确定目标 checkbox
InBlock.gif                if(chkList[j].type == "checkbox" && chkList[j].checked && chkList[j].id.indexOf(chkIdPart) > -1) {
InBlock.gif                    txt += getRowValue(chkList[j]) + "\n";    
InBlock.gif                    break;                
InBlock.gif                }
InBlock.gif            }
ExpandedSubBlockEnd.gif        }
*/

ExpandedSubBlockStart.gifContractedSubBlock.gif        
/**//* 方法2 */
InBlock.gif        chkList 
= tbl.getElementsByTagName("input");  // 返回表内嵌的所有 input 控件
ExpandedSubBlockStart.gifContractedSubBlock.gif
        for(var j = 0; j < chkList.length; j++dot.gif{
InBlock.gif            
// 多条件准确确定目标 checkbox
ExpandedSubBlockStart.gifContractedSubBlock.gif
            if(chkList[j].type == "checkbox" && chkList[j].checked && chkList[j].id.indexOf(chkIdPart) > -1dot.gif{
InBlock.gif                txt 
+= getRowValue(chkList[j]) + "\n";                                    
ExpandedSubBlockEnd.gif            }

ExpandedSubBlockEnd.gif        }

InBlock.gif        
return txt;
ExpandedBlockEnd.gif    }

None.gif    
</ script >



效果演示


完整源码
下载
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值