前天绑定,后台用的时候FindControl()就行了

解决方案 »

  1.   

    http://www.4guysfromrolla.com/webtech/050801-1.shtml
    上面是一个如何使用DropDownList的例子!radiobuttonlist的原理是一样的!
      

  2.   

    客户端代码如下(HTML):
    <asp:datagrid id="DataGrid1" runat="server">
    <Columns>
    <asp:TemplateColumn>
    <ItemTemplate>
    <FONT face="宋体">
    <asp:RadioButtonList id="RadioButtonList1" runat="server"></asp:RadioButtonList></FONT>
    </ItemTemplate>
    </asp:TemplateColumn>
    </Columns>
    </asp:datagrid>
    后台代码如下(CS):
    private void Page_Load(object sender, System.EventArgs e)
    {
    if(!IsPostBack){
    String connectionString="server=localhost;uid=sa;pwd=sa;database=pubs"; 
    SqlConnection connection=new SqlConnection(connectionString);
    try{
    connection.Open();
    SqlCommand command=new SqlCommand
    ("select * from titles where price!=0",connection);
    SqlDataReader reader=command.ExecuteReader();
    // this.Repeater1.DataSource=reader;
    // Repeater1.DataBind();
    this.DataGrid1.DataSource=reader;
    DataGrid1.DataBind();
    }
    catch(SqlException ex){
    Console.WriteLine(ex.Message);
    }
    finally{
    connection.Close();
    }
    }

    }
    添加事件处理函数:
    private void InitializeComponent()
    {   
    this.DataGrid1.ItemDataBound += new System.Web.UI.WebControls.DataGridItemEventHandler(this.DataGrid1_ItemDataBound);
    }邦定代码:
    private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e) {
    if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType==ListItemType.AlternatingItem){
    RadioButtonList rbl = (RadioButtonList)e.Item.Cells[1].FindControl("RadioButtonList1");
    rbl.DataSource = this.CreateDataSource();
    rbl.DataTextField = "IntegerValue";
    rbl.DataBind();
    }
    }
    下面的方法将得到上面这个DataGrid里面所有选中的按钮的Text显示在Text1里面(用|作为分割符)!
    private void getButtonList() {
    foreach(DataGridItem item in this.DataGrid1.Items){
    if(item.ItemType == ListItemType.Item || item.ItemType==ListItemType.AlternatingItem){
    RadioButtonList rbl = (RadioButtonList)item.Cells[1].FindControl("RadioButtonList1");
    if(rbl.SelectedItem != null)
    this.TextBox1.Text += rbl.SelectedItem.Text+"|";
    }
    }
    }
      

  3.   

    用到的一个方法:
    ICollection CreateDataSource() {
    DataTable dt = new DataTable();
    DataRow dr;
     
    dt.Columns.Add(new DataColumn("IntegerValue", typeof(Int32)));
    dt.Columns.Add(new DataColumn("StringValue", typeof(string)));
    dt.Columns.Add(new DataColumn("CurrencyValue", typeof(double)));
     
    for (int i = 0; i < 9; i++) {
    dr = dt.NewRow();
     
    dr[0] = i;
    dr[1] = "Item " + i.ToString();
    dr[2] = 1.23 * (i + 1);
     
    dt.Rows.Add(dr);
    }
     
    DataView dv = new DataView(dt);
    return dv;
    }