GridView中模板列中checkbox單選

來源:互聯網
上載者:User

在後台GridView_RowDataBound事件中
CheckBox cbx = e.Row.FindControl("cbxName") as CheckBox;
        try
        {
            //綁定選中CheckBox 用戶端ID
            cbx.Attributes.Add("onclick", "ChangeGet(" + cbx.ClientID + ")");
        }
        catch
        {
        }
前台js指令碼代碼
<script language="javascript">
function ChangeGet(SelectCheckBox)
{            
//找到頁面所有 input
  var objs = document.getElementsByTagName("input");
  for(var i=0; i<objs.length; i++)
    {
//找到input中的checkbox
        if(objs[i].type.toLowerCase() == "checkbox" )
//所有checkbox為false
        objs[i].checked = false;
    }
//找到選中checkbox
   var SelectCheckBoxID=SelectCheckBox.id;
//選中checkbox為true
   document.getElementById(SelectCheckBoxID).checked = true;
}

</script>

或者:

在後台GridView_RowDataBound事件中
CheckBox cbx = e.Row.FindControl("cbxName") as CheckBox;
        try
        {
            //綁定選中CheckBox 用戶端ID
            cbx.Attributes.Add("onclick", "ChangeGet(this)");
        }
        catch
        {
        }
前台js指令碼代碼
<script language="javascript">
function ChangeGet(SelectCheckBox)
{            
//找到頁面所有 input
  var objs = document.getElementsByTagName("input");
  for(var i=0; i<objs.length; i++)
    {
//找到input中的checkbox
        if(objs[i].type.toLowerCase() == "checkbox" )
//所有checkbox為false
        objs[i].checked = false;
    }
//選中checkbox為true
   SelectCheckBoxID.checked = true;
}

</script>

寫個完善一點的 你看看 

    <script language="javascript">

       
       
var ClickNum=0;//判斷同一checkbox連續點擊次數
var PreCheckboxID="";//記錄點擊checkbox的ID
//listId為控制checkbox的範圍
//SelectRadio是點擊checkbox自己
function SelectRadio(listId,SelectRadio)
{
    ///判斷是否連擊同一個checkbox
    if(PreCheckboxID==SelectRadio.id)
    {
        ClickNum = ClickNum + 1;
    }
    else
    {
        PreCheckboxID = SelectRadio.id;
        ClickNum = 0;
    }
    //找到控制範圍
    var GridViewtableSearchList = document.getElementById(listId);
    //找到控制範圍下所有input
    var objs = GridViewtableSearchList.getElementsByTagName("input");
    //找到控制範圍下所有checkbox並都變為false
    for(var i = 0; i < objs.length; i++)
    {
        if(objs[i].type.toLowerCase() == "checkbox" )
        objs[i].checked = false;
    }
    var SelectRadioID = SelectRadio.id;
    //如果連擊次數為奇次checked為true偶次為false
    if(ClickNum%2!=1)
    {
        document.getElementById(SelectRadioID).checked = true;
    }
    else
    {
        document.getElementById(SelectRadioID).checked = false;
    }
}

    </script>

    <form id="form1" runat="server">
        <div id="DivGridview">
            <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="a"
                DataSourceID="SqlDataSource1" OnRowDataBound="GridView1_RowDataBound">
                <Columns>
                    <asp:BoundField DataField="a" HeaderText="a" InsertVisible="False" ReadOnly="True"
                        SortExpression="a" />
                    <asp:BoundField DataField="b" HeaderText="b" SortExpression="b" />
                    <asp:TemplateField>
                        <ItemTemplate>
                            <asp:CheckBox ID="CheckBox1" runat="server" onclick="SelectRadio('DivGridview',this)"/>
                        </ItemTemplate>
                    </asp:TemplateField>
                </Columns>
            </asp:GridView>
        </div>

    </form>

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.