我想在点击<asp:CheckBox>的时候可以调用一段js脚本,以实现限制选择问题。
可是我不清楚怎么调用,<asp:CheckBox>中没有onclick这个属性
我的checkbox是嵌套在gridview中使用的。
请问各位高人,这个问题要怎么解决。
或者是怎么用其他的方法实现这一功能。

解决方案 »

  1.   

    你点击的时候状态就会变化,所以可以在checkedchanged里面写
      

  2.   


        <script language="javascript" type="text/javascript">
     
            //设置 CheckBox 的选择状态js反选 全选 多选框 兼容ie和firefox版本
            function SettingChecked(isCked)
            {
                var ck=document.getElementsByTagName("input");//意思是找到页面上所有 <input > 节点
                 for(var i=0 ;i<ck.length;i++)
                {
                    if(ck[i].type=="checkbox")
                        {
                        ck[i].checked=(isCked=="selectAll")? true :(!ck[i].checked);
                        }
                }
            }
            //判断选中提示。
            function DelAllItem(id,evt)
            {
               if(CkeckedTolNum(id)==0)
                {
                    alert('<%=FSSoft.Web.UI.Language.Msg("00005") %>');
                    return false;}
                  else
                   {return window.confirm('<%=FSSoft.Web.UI.Language.Msg("00008") %>');}
                }
            function CkeckedTolNum(cid)
            {
               var num =0;  
               var cks =document.getElementsByTagName("input");
                for(var i=0;i<cks.length;i++)
               { 
                  //cks[i].id.indexOf(cid) = 0 时,说明 是以 cid 开头的 ID
                  if(cks[i].type=="checkbox"  && cks[i].checked && cks[i].id.indexOf(cid)>=0)
                  {num ++;}
                }
               return num;
             }
        </script>
    <ItemTemplate>
     <asp:CheckBox ID="single_Chk"  name="selectAll" runat="server" /><%# Container.DataItemIndex+1 %> </ItemTemplate>
      

  3.   

    简单点的例子
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>无标题页</title>
            <script language="javascript" type="text/javascript">
            function XXX(sender)
        {
                alert (document.getElementById(sender).checked);
            }
        </script>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
           <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="OrderID" OnRowDataBound="GridView1_RowDataBound">
    <Columns>
        <asp:BoundField DataField="OrderID" HeaderText="OrderID" />
        <asp:TemplateField>
            <ItemTemplate>
                <asp:CheckBox ID="chkSelect" runat="server" />
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
    </asp:GridView>
        </div>
        </form>
    </body>
    </html>    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                CheckBox chkSelect = e.Row.FindControl("chkSelect") as CheckBox;
                chkSelect.Attributes.Add("onclick", "XXX('" + chkSelect.ClientID + "')");
            }
        }
      

  4.   

    3楼的代码我用了 返回值为true或false不是我要的结果
    我实现的功能是 用户只能勾中一个checkbox 多了就弹出个对话框提示错误