我需要在GridView控件中动态的添加模板列,同时在模板列中动态的添加checkbox控件,请问高手如何做到?

解决方案 »

  1.   

    请看这里,实例:
    http://blog.csdn.net/llxchen/archive/2008/01/18/2051149.aspx
      

  2.   

    我想实现这样的效果,<asp:CheckBox ID="chkAccess1" runat="server" Checked= '<%# Bind("ACCESS_KENGEN_LIST1") %>' Text="NS" />让Checked= '<%# Bind("ACCESS_KENGEN_LIST1") %>'这段代码能在后台编程的情况下实现,请高手指教
      

  3.   

    将CheckBox加在模板列中后,在GridView的RowDataBound事件中,找到这个CheckBox进行处理就可以了
      

  4.   


     ICollection CreateDataSource()
      {
        DataTable dt = new DataTable();
        DataRow dr;
        dt.Columns.Add(new DataColumn("id", typeof(Int32)));
        dt.Columns.Add(new DataColumn("text", typeof(string)));
        for (int i = 0; i < 6; i++)
        {
          dr = dt.NewRow();
          dr[0] = i;
          dr[1] = "列表项目 " + i.ToString();
          dt.Rows.Add(dr);
        }
        DataView dv = new DataView(dt);
        return dv;
      }
      

  5.   


    protected void Page_Load(object sender, EventArgs e)
      {
        if (!IsPostBack)
        {
          TemplateField customField = new TemplateField();
          customField.ShowHeader = true;
          customField.HeaderTemplate = new GridViewTemplate(DataControlRowType.Header, "动态添加列");
          customField.ItemTemplate = new GridViewTemplate(DataControlRowType.DataRow, "");
          GridView1.Columns.Add(customField);
          GridView1.DataSource = CreateDataSource();
          GridView1.DataBind();
        }
      }
      

  6.   


    protected void GridView1_RowDataBound( object sender, GridViewRowEventArgs e )
      {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
          //可以在这里访问数据库的其它字段的值,可以设置默认选择项,具体应用.
          //下面只是例子,举一反三
          DataRowView gv = (DataRowView)e.Row.DataItem;
          int itemSeleted = Int32.Parse(gv.Row["id"].ToString()) > 3 ? 0 : Int32.Parse(gv.Row["id"].ToString());
          DropDownList dr = (DropDownList)e.Row.FindControl("dropdown");
          dr.SelectedIndex = itemSeleted;
        }
      }