先加一个样板列,里面放radiobuttonlist
在itembound事件里写
if e.item.itemindex<>-1 then
    dim r as radiobuttonlist
    r=e.item.cell(0).findcontrol("radiobuttonlist1")
    r.items.add("a")
    r.items.add("b")
....

解决方案 »

  1.   

    public void BindGrid()
        {
            SqlDataAdapter myCommand = new SqlDataAdapter("select * from Authors", myConnection);
            DataSet ds = new DataSet();
            myCommand.Fill(ds, "Authors");
            MyDataGrid.DataSource=ds.Tables["Authors"].DefaultView;
            MyDataGrid.DataBind();
        }</script><body style="font: 10.5pt 宋体">
      <form runat="server">
        <h3><font face="宋体">更新具有模板列的数据行</font></h3>
        <span id="Message" EnableViewState="false" style="font: arial 11pt;" runat="server"/><p>
        <ASP:DataGrid id="MyDataGrid" runat="server"
          Width="800"
          BackColor="#ccccff"
          BorderColor="black"
          ShowFooter="false"
          CellPadding=3
          CellSpacing="0"
          Font-Name="Verdana"
          Font-Size="8pt"
          HeaderStyle-BackColor="#aaaadd"
          OnEditCommand="MyDataGrid_Edit"
          OnCancelCommand="MyDataGrid_Cancel"
          OnUpdateCommand="MyDataGrid_Update"
          DataKeyField="au_id"
          AutoGenerateColumns="false"
        >      <Columns>
            <asp:EditCommandColumn EditText="编辑" CancelText="取消" UpdateText="更新"  ItemStyle-Wrap="false"/>
            <asp:BoundColumn HeaderText="au_id" SortExpression="au_id" ReadOnly="True" DataField="au_id" ItemStyle-Wrap="false"/>
            <asp:TemplateColumn HeaderText="au_lname" SortExpression="au_lname">
              <ItemTemplate>
                <asp:Label runat="server" Text="<%# DataBinder.Eval(Container.DataItem, "au_lname") %>"/>
              </ItemTemplate>
              <EditItemTemplate>
                <asp:TextBox runat="server" id="edit_LName" Text="<%# DataBinder.Eval(Container.DataItem, "au_lname") %>"/>
              </EditItemTemplate>
            </asp:TemplateColumn>
            <asp:TemplateColumn HeaderText="au_fname" SortExpression="au_fname">
              <ItemTemplate>
                <asp:Label runat="server" Text="<%# DataBinder.Eval(Container.DataItem, "au_fname") %>"/>
              </ItemTemplate>
              <EditItemTemplate>
                <asp:TextBox runat="server" id="edit_FName" Text="<%# DataBinder.Eval(Container.DataItem, "au_fname") %>"/>
              </EditItemTemplate>
            </asp:TemplateColumn>
            <asp:TemplateColumn HeaderText="phone" SortExpression="phone">
              <ItemTemplate>
                <asp:Label runat="server" Text="<%# DataBinder.Eval(Container.DataItem, "phone") %>"/>
              </ItemTemplate>
              <EditItemTemplate>
                <asp:TextBox runat="server" id="edit_Phone" Text="<%# DataBinder.Eval(Container.DataItem, "phone") %>"/>
              </EditItemTemplate>
            </asp:TemplateColumn>
            <asp:TemplateColumn HeaderText="address" SortExpression="address">
              <ItemTemplate>
                <asp:Label runat="server" Text="<%# DataBinder.Eval(Container.DataItem, "address") %>"/>
              </ItemTemplate>
              <EditItemTemplate>
                <asp:TextBox runat="server" id="edit_Address" Text="<%# DataBinder.Eval(Container.DataItem, "address") %>"/>
              </EditItemTemplate>
            </asp:TemplateColumn>
            <asp:TemplateColumn HeaderText="city" SortExpression="city">
              <ItemTemplate>
                <asp:Label runat="server" Text="<%# DataBinder.Eval(Container.DataItem, "city") %>"/>
              </ItemTemplate>
              <EditItemTemplate>
                <asp:TextBox runat="server" id="edit_City" Text="<%# DataBinder.Eval(Container.DataItem, "city") %>"/>
              </EditItemTemplate>
            </asp:TemplateColumn>
            <asp:TemplateColumn HeaderText="state" SortExpression="state">
              <ItemTemplate>
                <asp:Label runat="server" Text="<%# DataBinder.Eval(Container.DataItem, "state") %>"/>
              </ItemTemplate>
              <EditItemTemplate>
                <asp:DropDownList runat="server" SelectedIndex="<%# GetStateIndex(DataBinder.Eval(Container.DataItem, "state").ToString()) %>" id="edit_State">
                      <asp:ListItem>CA</asp:ListItem>
                      <asp:ListItem>IN</asp:ListItem>
                      <asp:ListItem>KS</asp:ListItem>
                      <asp:ListItem>MD</asp:ListItem>
                      <asp:ListItem>MI</asp:ListItem>
                      <asp:ListItem>OR</asp:ListItem>
                      <asp:ListItem>TN</asp:ListItem>
                      <asp:ListItem>UT</asp:ListItem>
                </asp:DropDownList>
              </EditItemTemplate>
            </asp:TemplateColumn>
            <asp:TemplateColumn HeaderText="zip" SortExpression="zip">
              <ItemTemplate>
                <asp:Label runat="server" Text="<%# DataBinder.Eval(Container.DataItem, "zip") %>"/>
              </ItemTemplate>
              <EditItemTemplate>
                <asp:TextBox runat="server" id="edit_Zip" Text="<%# DataBinder.Eval(Container.DataItem, "zip") %>"/>
              </EditItemTemplate>
            </asp:TemplateColumn>
            <asp:TemplateColumn HeaderText="contract" SortExpression="contract">
              <ItemTemplate>
                <asp:Label runat="server" Text="<%# DataBinder.Eval(Container.DataItem, "contract", "{0}") %>"/>
              </ItemTemplate>
              <EditItemTemplate>
                <asp:CheckBox runat="server" id="edit_Contract" Checked="<%# DataBinder.Eval(Container.DataItem, "contract") %>"/>
              </EditItemTemplate>
            </asp:TemplateColumn>
          </Columns>
        </ASP:DataGrid>
      </form>
    </body>
    </html>
      

  2.   

    RadioButtonList如何DataBinding数据啊
      

  3.   

    重载DataGrid的ItemCreated,
    下面是一段通过的代码,DT和iCount是全局变量public void OnItemCreate(object sender,DataGridItemEventArgs e)
    {   RadioButtonList list=(RadioButtonList)e.Item.Cells[2].FindControl("select_index");
       if(list!=null && DT!=null && iCount<DT.Rows.Count)
       {
    list.SelectedIndex=Convert.ToInt32(DT.Rows[iCount]["state_index"]);
    iCount++;
       }
    }