js :全选gridview中的asp:checkbox

网上搜一下关于如何做到在页面层对asp:checkbox控件全选的文章比较少,类似yahoo邮件的客户端全选一样,现在与大家分享一下我的作品:在服务器端写全选不难,但在客户端写的代码有点少了:

eg:

<asp:GridView ID="gdvSelect" runat="server" AutoGenerateColumns="False"  OnRowDataBound="gdvSelect_RowDataBound"  OnRowDeleting="gdvSelect_RowDeleting" OnRowEditing="gdvSelect_RowEditing" OnRowUpdating="gdvSelect_RowUpdating" DataKeyNames="Id">            <Columns>         

       <asp:TemplateField>           

         <HeaderTemplate>               

         <asp:CheckBox ID="chkSelectHeader" runat="server"                            Text="全选" />                 

   </HeaderTemplate>     

               <ItemTemplate>             

           <asp:CheckBox ID="chkSelectItem" runat="server" />                    </ItemTemplate>           

     </asp:TemplateField>           

     <asp:ButtonField ButtonType="Button" HeaderText="选择" Text="选择" />                <asp:TemplateField HeaderText="数量">        

            <ItemTemplate>                

         <asp:TextBox  ID="txtCount" Text='<%# Eval("Name") %>' runat="server" Width="48px" οnkeyup="javascript:DoCall();" CausesValidation="True"  AutoPostBack="true" OnTextChanged="txtCount_TextChanged">

           </asp:TextBox>            

            <asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ControlToValidate="txtCount"                            ErrorMessage="请输入数字" ValidationExpression="^(([0-9]+/.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*/.[0-9]+)|([0-9]*[1-9][0-9]*))$">*</asp:RegularExpressionValidator>                    </ItemTemplate>                </asp:TemplateField>     

           <asp:TemplateField HeaderText="单价">                    <ItemTemplate>               

         <asp:TextBox ID="txtPrice" runat="server" Text='<%# Eval("Obj.Id") %>' Width="52px" οnkeyup="javascript:DoCall();"></asp:TextBox>

<asp:RegularExpressionValidator                            ID="RegularExpressionValidator2" runat="server" ControlToValidate="txtPrice"                            ErrorMessage="请输入数字" ValidationExpression="^(([0-9]+/.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*/.[0-9]+)|([0-9]*[1-9][0-9]*))$">*</asp:RegularExpressionValidator>                    </ItemTemplate>             

   </asp:TemplateField>         

       <asp:TemplateField HeaderText="总金额">                    <ItemTemplate>                

        <asp:TextBox ID="txtSum" runat="server" Width="48px"></asp:TextBox>       

             </ItemTemplate>     

           </asp:TemplateField>       

         <asp:TemplateField>         

           <ItemTemplate>                 

       <asp:Button ID="Button2" runat="server" Text="操作" CommandName="Edit" />                      

       <asp:Button ID="Button3" runat="server" Text="删除" CommandName="Delete" />           

         </ItemTemplate>         

       </asp:TemplateField>          

  </Columns>    

    </asp:GridView>

<script language="javascript" type="text/javascript">

 function DoCall()

{var e=event.srcElement;

var row=e.parentNode.parentNode;

var txts=row.all.tags("input");

if(!txts.length|| txts.length<3)

{return;}

var cou=txts[txts.length-5].value;

var price=txts[txts.length-4].value;

if(isNaN(cou)|| isNaN(price)){return false;}

cou=parseFloat(cou);

price=parseFloat(price);

txts[txts.length-3].value=(cou*price).toFixed(2);}

function trims(str)

{return str.replace(" ","");}

//check gridview 中item为checkbox没有被选中时,全选不能被选中,否则全选则被选中;

function check()

{var flag=false;var e=event.srcElement;

var row=e.parentNode.parentNode.parentNode;

var header=row.childNodes[0].all.tags('input')[0];  

   for(var j=1;j<row.childNodes.length;j++)   

  {      var itemCheck=row.childNodes[j].all.tags('input')[0];    

  if(!itemCheck.checked)     

{         flag=true;        

 break;      }     

 }    

  if(flag)   

   {      header.checked=false;      }    

  else      {      header.checked=true;      } return true;}

//选中或不选中当前gridview中所有checkbox;

function selectAll()

{var e=event.srcElement;

var row=e.parentNode.parentNode.parentNode;

var header=row.childNodes[0].all.tags('input')[0];

for(var i=1;i<row.childNodes.length;i++)

{var rowNo=row.childNodes[i];

var rowchk=rowNo.all.tags('input');

rowchk[0].checked=header.checked;}

return true;}

</script>

已测试通过,希望能可大家一起分享;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值