关闭

如何通过 javascript 访问 GridView/DataGrid 选中 CheckBox 行各列的值

915人阅读 评论(0) 收藏 举报
主要代码
<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>
 
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:401024次
    • 积分:7441
    • 等级:
    • 排名:第2925名
    • 原创:334篇
    • 转载:23篇
    • 译文:1篇
    • 评论:52条
    文章分类
    最新评论