我想在页加载的时候指定datasource同时加一个模板,在模板中加入一个命名为chk1的checkbox,各位英雄指点一下代码如何写.谢谢各位.

解决方案 »

  1.   

    http://lovecherry.cnblogs.com/archive/2005/03/25/125526.aspx
      

  2.   

    在后台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>
      

  3.   

    如果你仅仅只要添加checkbox的话,我有个简单的方法。
    首先在数据源上添加一列,类型为bool型
    示例代码:
        DataTable dt = new DataTable();
            dt.Columns.Add("ID", typeof(int));
            dt.Columns.Add("check", typeof(bool));
            for (int i = 0; i < 10; i++) {
                dt.Rows.Add(new object[] { i, true });
            }
            GridView1.DataSource = dt;
            GridView1.DataBind();
    这样,绑定后的GridView就有一列CheckBox了,但是他是不可用的,还须要手动改成可选的
    在RowCreated事件里,将CheckBox改成可用的
    示例:
        protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e) {
            foreach(TableCell cell in e.Row.Cells)
            {
                if (cell.Controls.Count > 0) {
                    CheckBox c = (CheckBox)cell.Controls[0];
                    if (c != null)
                        c.Enabled = true;
                }
            }
        }
      

  4.   

    在 <Columns>```</Columns>中加入
     <asp:TemplateField >
     <ItemTemplate>
     <asp:CheckBox ID="chk1" runat="server" Text='<%#Eval("字段名") %>'
     />
     </ItemTemplate>
    </asp:TemplateField>
      

  5.   

    一、在模版列中放置控件
    <asp:GridView ID="gv" runat="server">
    <Columns>
      <asp:TemplateField HeaderText="所属分类">
        <ItemTemplate>
            <asp:CheckBox runat="server" id="chk1" />
        </ItemTemplate>
      </asp:TemplateField>
      ...
    </Columns>
    </asp:GridView>二、对控件进行操作
    GridView的RowDataBound事件:
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
      CheckBox chk = (CheckBox)e.Row.FindControl("chk1");
      //chk就是CheckBox对象,你可对其进行任意操作
    }
      

  6.   

    用luck0235方法很方便,问题解决了,谢谢各位.