Oggetto in datagrid

venerdì 29 settembre 2006 - 15.17

realbenny23 Profilo | Junior Member

ciao,
ho costruito una datagrid da codice con 1 colonna di tipo intero e 2 colonne che contengono ciascuna un radiobutton. non riesco a prelevare il valore dei rdiobutton, come posso fare? sotto metto il codice che ho scritto:

pagina.aspx
----------------------------------------------------------------------------------------------------------------------
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 datagrid
{
/// <summary>
/// Summary description for rbtradiobutton.
/// </summary>
public class rbtradiobutton : System.Web.UI.Page
{
protected System.Web.UI.WebControls.PlaceHolder place;
RadioButton rbt1 = null;
RadioButton rbt2 = null;
DataGrid dg = null;

private void Page_Load(object sender, System.EventArgs e)
{
// Put user code to initialize the page here
//crea_radiobutton();
crea_datagrid();
dg.DataSource = CreateDataSource();
dg.DataBind();
dg.ItemDataBound += new DataGridItemEventHandler(dg_ItemDataBound);
}

private void crea_datagrid()
{
dg = new DataGrid();
dg.ID = "dgdatagrid";
dg.BorderColor = System.Drawing.Color.Black;
dg.CellPadding = 3;
dg.AutoGenerateColumns = false;
dg.HeaderStyle.BackColor = System.Drawing.Color.ForestGreen;
dg.HeaderStyle.ForeColor = System.Drawing.Color.White;
dg.Columns.Add(CreateBoundColumn("IntegerValue", "N°"));
dg.Columns.Add(CreateTemplateColumnRbt1("radiobutton1"));
dg.Columns.Add(CreateTemplateColumnRbt2("radiobutton2"));
place.Controls.Add(dg);
}

private ICollection CreateDataSource()
{
DataTable dt = new DataTable();
DataRow dr;

dt.Columns.Add(new DataColumn("IntegerValue", typeof(Int32)));
for(int i=0;i<=4;i++)
{
dr = dt.NewRow();
dr[0] = i+1;
dt.Rows.Add(dr);
}
Session["Source"] = dt;
DataView dv = new DataView(dt);
return dv;
}

BoundColumn CreateBoundColumn(String DataFieldValue, String HeaderTextValue)
{
BoundColumn column = new BoundColumn();
column.DataField = DataFieldValue;
column.HeaderText = HeaderTextValue;
return column;
}

TemplateColumn CreateTemplateColumnRbt1(String HeaderTextValue)
{
Control ctrl = new Control();
TemplateColumn column = new TemplateColumn();
column.HeaderText=HeaderTextValue;
column.ItemTemplate = new DataGridTemplateRbt1();
return column;
}

TemplateColumn CreateTemplateColumnRbt2(String HeaderTextValue)
{
Control ctrl = new Control();
TemplateColumn column = new TemplateColumn();
column.HeaderText=HeaderTextValue;
column.ItemTemplate = new DataGridTemplateRbt2();
return column;
}

private void crea_radiobutton()
{
rbt1 = new RadioButton();
rbt1.ID="rbt23";
rbt1.GroupName="benny";
rbt1.AutoPostBack=true;
rbt1.Text="radiobutton 1";
rbt1.CheckedChanged += new EventHandler(rbt_CheckedChanged);
place.Controls.Add(rbt1);
rbt2 = new RadioButton();
rbt2.ID="rbt32";
rbt2.GroupName="benny";
rbt2.AutoPostBack=true;
rbt2.Text="radiobutton 2";
rbt2.CheckedChanged += new EventHandler(rbt2_CheckedChanged);
place.Controls.Add(rbt2);
}

#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: This call is required by the ASP.NET Web Form Designer.
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);

}
#endregion

private void rbt_CheckedChanged(object sender, EventArgs e)
{
if(rbt1.Checked)
{
Response.Write(rbt1.Text.ToString());
}
}

private void rbt2_CheckedChanged(object sender, EventArgs e)
{
if(rbt2.Checked)
{
Response.Write(rbt2.Text.ToString());
}
}

private void dg_ItemDataBound(object sender, DataGridItemEventArgs e)
{
if ((e.Item.ItemType == ListItemType.Item)||(e.Item.ItemType == ListItemType.AlternatingItem))
{
DataGridTemplateRbt1 dgrbt1 = new DataGridTemplateRbt1();
DataGridTemplateRbt2 dgrbt2 = new DataGridTemplateRbt2();
rbt1 = new RadioButton();
rbt2 = new RadioButton();
rbt1 = (RadioButton)(e.Item.FindControl("rbt1"));
rbt2 = (RadioButton)(e.Item.FindControl("rbt2"));
rbt1.CheckedChanged += new EventHandler(dgrbt1.rbt_CheckedChanged);
rbt2.CheckedChanged += new EventHandler(dgrbt2.rbt_CheckedChanged);
}
}
}
}


DataGridTemplateRbt1.cs
----------------------------------------------------------------------------------------------------------------------
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 datagrid
{
/// <summary>
/// Summary description for DataGridTemplateRbt1.
/// </summary>
public class DataGridTemplateRbt1: ITemplate
{
public DataGridTemplateRbt1()
{
//
// TODO: Add constructor logic here
//
}

public void InstantiateIn(System.Web.UI.Control container)
{
RadioButton rbt = new RadioButton();
rbt.GroupName="benny";
rbt.ID="rbt1";
rbt.Checked=true;
rbt.CheckedChanged += new EventHandler(rbt_CheckedChanged);
container.Controls.Add(rbt);
}

public void rbt_CheckedChanged(object sender, EventArgs e)
{
HttpContext.Current.Response.Write("prova1");
}
}
}




DataGridTemplateRbt2.cs
----------------------------------------------------------------------------------------------------------------------
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 datagrid
{
/// <summary>
/// Summary description for DataGridTemplateRbt2.
/// </summary>
public class DataGridTemplateRbt2: ITemplate
{
public DataGridTemplateRbt2()
{
//
// TODO: Add constructor logic here
//
}

public void InstantiateIn(System.Web.UI.Control container)
{
RadioButton rbt = new RadioButton();
rbt.GroupName="benny";
rbt.ID="rbt2";
rbt.Checked=false;
rbt.CheckedChanged += new EventHandler(rbt_CheckedChanged);
container.Controls.Add(rbt);
}

public void rbt_CheckedChanged(object sender, EventArgs e)
{
HttpContext.Current.Response.Write("prova2");
}
}
}
Benny

----------------------------------------------------------------------------------------------------------------------
nessuno mi può aiutare??????????????
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5