请教各位高手,我想做一个弹出页面,页面中列出所有的分组名称,我想用DataGrid,而且每行前面都要有一个radio,点击该radio页面自动关闭,返回值到前面的页面上。
请问怎么绑定这个RadioButtonList

解决方案 »

  1.   

    <%@ Page language="c#" Codebehind="DataGrid加单选框.aspx.cs" AutoEventWireup="false" Inherits="bsTest2005_8_16.Samples.DataGrid加单选框" %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
    <HTML>
    <body>
    <form runat="server" id="MM">
    <input type="hidden" id="rd" runat="server" NAME="rd">
    <asp:DataGrid id="ItemsGrid" runat="server" BorderColor="black" BorderWidth="1" CellPadding="3"
    AllowPaging="true" AutoGenerateColumns="false">
    <HeaderStyle BackColor="#00aaaa"></HeaderStyle>
    <PagerStyle Mode="NumericPages"></PagerStyle>
    <Columns>
    <asp:TemplateColumn>
    <ItemTemplate>
    <input type=radio name="RadioName" value='<%# DataBinder.Eval(Container.DataItem, "IntegerValue")%>'/>
    </ItemTemplate>
    </asp:TemplateColumn>
    <asp:BoundColumn HeaderText="数字列" DataField="IntegerValue" />
    <asp:BoundColumn HeaderText="字符串列" DataField="StringValue" />
    <asp:BoundColumn HeaderText="货币列" DataField="CurrencyValue" DataFormatString="{0:c}">
    <ItemStyle HorizontalAlign="right"></ItemStyle>
    </asp:BoundColumn>
    </Columns>
    </asp:DataGrid>
    <br>
    <asp:Button id="Btn" Text="看你选择的" runat="server" />
    <asp:Label id="Label1" Text="" runat="server" />
    </form>
    </body>
    </HTML>
    ****************************************************
    using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Web;
    using System.Web.SessionState;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;
    namespace bsTest2005_8_16.Samples
    {
    /// <summary>
    /// DataGrid加单选框 的摘要说明。
    /// </summary>
    public class DataGrid加单选框 : System.Web.UI.Page
    {
            protected System.Web.UI.WebControls.DataGrid ItemsGrid;
            protected System.Web.UI.WebControls.Button Btn;
            protected System.Web.UI.WebControls.Label Label1;
            protected System.Web.UI.HtmlControls.HtmlInputHidden rd;         private void Page_Load(object sender, System.EventArgs e)
    {
    // 在此处放置用户代码以初始化页面
                System.Text.StringBuilder js = new System.Text.StringBuilder();
                js.Append("<script>\r\n");
                js.Append("function ld(){\r\n");
                js.Append("for(i=0;i<document.getElementsByName('RadioName').length;i++)\r\n");
                js.Append("if(document.getElementsByName('RadioName')[i].value==");
                js.Append("document.getElementById('" + rd.ClientID + "').value) ");
                js.Append("document.getElementsByName('RadioName')[i].checked=true\r\n");
                js.Append("}\r\n");
                js.Append("window.onload=ld\r\n");
                js.Append("</"+"script>\r\n");
                this.RegisterStartupScript("js",js.ToString());
                if (!IsPostBack) 
                {
                    ItemsGrid.DataSource = CreateDataSource();
                    ItemsGrid.DataBind();
                }    
    }
            
            private DataView 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 < 101; 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;
            }
     
            private void Btn_Click(object sender, System.EventArgs e)
            {
                if(Request.Form["RadioName"] != null)
                {
                    rd.Value = Request.Form["RadioName"].ToString();
                    Label1.Text = "您所选择的是:<font color=red>" + Request.Form["RadioName"].ToString() +"</font>";
                }
            }        private void ItemsGrid_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
            {
                ItemsGrid.CurrentPageIndex = e.NewPageIndex;
                ItemsGrid.DataSource = CreateDataSource();
                ItemsGrid.DataBind();
            } #region Web 窗体设计器生成的代码
    override protected void OnInit(EventArgs e)
    {
    //
    // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
    //
    InitializeComponent();
    base.OnInit(e);
    }

    /// <summary>
    /// 设计器支持所需的方法 - 不要使用代码编辑器修改
    /// 此方法的内容。
    /// </summary>
    private void InitializeComponent()
    {    
                this.ItemsGrid.PageIndexChanged += new System.Web.UI.WebControls.DataGridPageChangedEventHandler(this.ItemsGrid_PageIndexChanged);
                this.Btn.Click += new System.EventHandler(this.Btn_Click);
                this.Load += new System.EventHandler(this.Page_Load);        }
    #endregion       
    }
    }
      

  2.   

    请教各位高手,我想做一个弹出页面,页面中列出所有的分组名称,我想用DataGrid,而且每行前面都要有一个radio,点击该radio页面自动关闭,返回值到前面的页面上。
    请问怎么绑定这个RadioButtonList