我的GridView第一列CheckBoxField,后几列boundfield,GridView已经绑定好数据库,从数据库中读出数据,GridView下面有一个查看按钮,当我选择一行数据后,弹出一个页面可以查看具体信息,一次只能查看一条数据,现在我的问题是怎样让用户一次只能选择一个CheckBoxField,不管GridView读出多少条数据,不管有没有分页?

解决方案 »

  1.   

    把checkbox绑定js事件实现checkbox的单选
    保证单选的js函数:function SetCheckBoxState(id)
    {
        var dom=document.getElementsByTagName("INPUT");   //文档中的所有Input元素
        var el=event.srcElement;//触发事件的本元素
        if(el.tagName=="INPUT"&&el.type.toLowerCase()=="checkbox")//如果本元素是checkbox
        {
            for(i=0;i<dom.length;i++)
            {
                if(dom[i].type.toLowerCase()=="checkbox"&&dom[i].id.indexOf(id)>-1)
                {
                    //将同一列的所有其它checkbox的checked设为false                if (el.id!=dom[i].id)
                    {
                        dom[i].checked=false;
                    }
                }
            }
        }
    }
    在恰当的地方绑定给checkbox列protected void Page_Load(object sender, EventArgs e) 

    if (!Page.IsPostBack) 

    //绑定GridView1的数据 
    GridView1.DataSource = ds; 
    GridView1.DataBind(); 
    for (int i = 0; i < GridView1.Rows.Count; i++) 

    CheckBox cb = (CheckBox)GridView1.Rows[i].FindControl("CheckBox1"); 
    cb.Attributes.Add("OnClick", "SetCheckBoxState('CheckBox1')"); //绑定