在ItemDataBound中再绑定CheckBoxList。

解决方案 »

  1.   

    void DataBindList(Object objSource, DataGridCommandEventArgs objArgs)
    {
    CheckBoxList objCheckBoxList = (CheckBoxList)YourDataGrid.Items[objArgs.Item.ItemIndex].FindControl("CheckBox");
             objCheckBoxList.DataSource= YourDS;
             objCheckBoxList.DataBind();<asp:DataGrid ItemDataBound='DataBindList'……
      

  2.   

    to icyer()
    不知道有ItemDataBound的呢??如何去绑定呢???能不能可以给例子参考一下呢?
      

  3.   

    to yellowwee
    我用的是模块列的,什么不见itemdatabound呢???
      

  4.   

    我现在明白了,就是onItemdatabound的
      

  5.   

    to yellowwee 
    请你帮我看一下有什么错误呢???Sub DataBindList(ByVal sender As Object, ByVal e As DataGridCommandEventArgs)
            Dim sqlConn As SqlClient.SqlConnection, strConn As String
            Dim sqlComm As SqlClient.SqlCommand, strComm As String
            Dim sqlRead As SqlClient.SqlDataReader
            Dim objCheckBoxList As CheckBoxList
            objCheckBoxList = CType(DataGrid1.Items(e.Item.ItemIndex).FindControl("checkboxlist1"), CheckBoxList)        '建立和连接数据库
            strConn = "server=Developsrv;uid=gtman;pwd=gtmanager;database=school"
            sqlConn = New SqlClient.SqlConnection(strConn)
            strComm = " select a.id as id,b.kc as kc,a.kc as vid from school_kc as a ,dm_kc as b where a.s_id='45010200001' and a.kc=b.id"
            sqlComm = New SqlClient.SqlCommand(strComm, sqlConn)
            sqlConn.Open()
            sqlRead = sqlComm.ExecuteReader
            sqlRead.Read()        With objCheckBoxList
                .DataSource = sqlRead
                .DataTextField = "kc"
                .DataValueField = "vid"
                .DataBind()
            End With
        End Sub
    ...............
    <asp:DataGrid  id="DataGrid1" AutoGenerateColumns="False"  OnItemDataBound="DataBindList"  runat="server">
    <Columns>
    <asp:TemplateColumn HeaderText="课程名称">
    <ItemTemplate>
    <asp:Label id="Label1" runat="server"></asp:Label>
    </ItemTemplate>
    <FooterTemplate>
    <FONT face="宋体"></FONT>
    </FooterTemplate>
    <EditItemTemplate>
    <asp:CheckBoxList id="CheckBoxList1" runat="server" RepeatColumns="1" RepeatLayout="Flow"></asp:CheckBoxList>
    </EditItemTemplate>
    </asp:TemplateColumn>
    </Columns>
    </asp:DataGrid>
      

  6.   

    我还没用DataReader做过数据源呢,推荐你用DataSet,用DataReader做数据源也不应该像你那样写!
      

  7.   

    我还没用DataReader做过数据源呢,推荐你用DataSet,用DataReader做数据源也不应该像你那样写!
      

  8.   

    编译器错误信息: BC30408: 方法“Public Sub DataBindList(sender As Object, e As System.Web.UI.WebControls.DataGridCommandEventArgs)”没有与委托“Delegate Sub DataGridItemEventHandler(sender As Object, e As System.Web.UI.WebControls.DataGridItemEventArgs)”相同的签名。源错误: 行 12:<div align="center">
    行 13:<form id="Form1" method="post" runat="server">
    行 14:<asp:DataGrid  id="DataGrid1" AutoGenerateColumns="False"  OnItemDataBound="DataBindList"  runat="server">
    行 15:<Columns>
    行 16:<asp:TemplateColumn HeaderText="课程名称">
     
      

  9.   

    好的,那改用dataset 试一下呢???
      

  10.   

    to yellowwee 
    Public Sub DataBindList(sender As Object, e As System.Web.UI.WebControls.DataGridCommandEventArgs)”没有与委托“Delegate Sub DataGridItemEventHandler(sender As Object, e As System.Web.UI.WebControls.DataGridItemEventArgs)”相同的签名
    是什么意思???
      

  11.   

    把参数类型DataGridCommandEventArgs换成DataGridItemEventArgs
      

  12.   

    就是DataGridItemEventArgs这个刚才去发牢骚了,阿根廷也走了~~
      

  13.   

    这里有一个相关的例子。
    在DataGrid的一个模板列中加入CheckBoxList控件:
    <asp:CheckBoxList Runat="server" ID="chklist" />
    然后在DataGrid的ItemDataBound中加入:
    CheckBoxList list = (CheckBoxList)e.Item.FindControl("chklist");
    if (list != null)
    {
    DataTable tbl = new DataTable();
    tbl.Columns.Add("col");
    DataRow row;
    for (i = 0; i < 2; i++)
    {
    row = tbl.NewRow();
    row[0] = "Text" + i.ToString();
    tbl.Rows.Add(row);
    }
    list.DataSource = tbl;
    list.DataTextField = "col";
    list.DataBind();
    }
    其中的tbl是一个模拟的表,这个表你可以从数据库里面读取。