Velocity Reviews

Velocity Reviews (http://www.velocityreviews.com/forums/index.php)
-   ASP .Net Datagrid Control (http://www.velocityreviews.com/forums/f60-asp-net-datagrid-control.html)
-   -   RadioButtonList In A DataGrid Cell - Can I find the selected button without editing the cell? (http://www.velocityreviews.com/forums/t760521-radiobuttonlist-in-a-datagrid-cell-can-i-find-the-selected-button-without-editing-the-cell.html)

Empire City 04-29-2004 04:22 AM

RadioButtonList In A DataGrid Cell - Can I find the selected button without editing the cell?
 
I have an ASP.NET form with a DataGrid and Button. I want to put a
RadioButtonList in a DataGrid cell. I bind it to an ArrayList which has a
ListItem in the cell. The display part works fine. I then check some boxes
and hit the submit button. I can't seem to get the value that is selected on
the RadioButton List. I don't want to use the EditTemplate thing I just want
to click on the radiobutton and submit the form. I also don't want to do
autopostbacks when I click on a button. Can this be done?

I looked at this link:
http://support.microsoft.com/default...b;en-us;320707

I modified the code to work with a RadioButton List not just a RadioButton.
However from each RadioButton List when I cycle throug the GridItems it
tells me that one of the buttons in the list was selected but I can't seem
to get which one.

Here is my test:

using System;

using System.Text;

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 DataGridRadio

{

public class GridList

{

//Constructors

public GridList() {}

public GridList(

string description,

ArrayList bValue)

{

this.Description = description;

this.BValue = bValue;

}

//Properties

private string description;

private ArrayList bValue;

public string Description

{

get {return description;}

set {description = value;}

}

public ArrayList BValue

{

get {return bValue;}

set {bValue = value;}

}

}

public class WebForm1 : System.Web.UI.Page

{

protected System.Web.UI.WebControls.DataGrid DataGrid1;

protected System.Web.UI.WebControls.Label Message;

protected System.Web.UI.WebControls.Button Button1;


private void Page_Load(object sender, System.EventArgs e)

{

ArrayList blist1 = new ArrayList();

ListItem li1 = new ListItem("aaa", "111");

blist1.Add(li1);

ListItem li2 = new ListItem("bbb", "222");

blist1.Add(li2);

ListItem li3 = new ListItem("ccc", "333");

blist1.Add(li3);


ArrayList blist2 = new ArrayList();

ListItem li4 = new ListItem("ddd");

blist2.Add(li4);

ListItem li5 = new ListItem("eee");

blist2.Add(li5);

ListItem li6 = new ListItem("fff");

blist2.Add(li6);

ArrayList blist3 = new ArrayList();

ListItem li7 = new ListItem("ggg");

blist3.Add(li7);

ListItem li8 = new ListItem("hhh");

blist3.Add(li8);

ListItem li9 = new ListItem("iii");

blist3.Add(li9);



ArrayList alist1 = new ArrayList();

GridList gl1 = new GridList("aaaaaaaaaaa", blist1);

alist1.Add(gl1);

GridList gl2 = new GridList("bbbbbbbbbbb", blist2);

alist1.Add(gl2);

GridList gl3 = new GridList("ccccccccccc", blist3);

alist1.Add(gl3);

DataGrid1.DataSource = alist1;

DataGrid1.DataBind();

}

#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.Button1.Click += new System.EventHandler(this.Button1_Click);

this.Load += new System.EventHandler(this.Page_Load);

}

#endregion

private void Button1_Click(object sender, System.EventArgs e)

{

StringBuilder gridSelections = new StringBuilder();

//Loop through each DataGridItem, and determine which CheckBox controls

//have been selected.

foreach(DataGridItem DemoGridItem in DataGrid1.Items)

{

RadioButtonList myRadioButtonList =

(RadioButtonList)DemoGridItem.Cells[1].Controls[1];

bool b4 = myRadioButtonList.Items[1].Selected;

int b1;

b1 = myRadioButtonList.SelectedIndex;

ListItem b2 = new ListItem();

b2 = myRadioButtonList.SelectedItem;

int b3 = 2;

}

}

}

}















Michael Tkachev 04-29-2004 10:42 AM

Re: RadioButtonList In A DataGrid Cell - Can I find the selected button without editing the cell?
 
RadioButtinlist has the following properties:

SelectedItem,

SelectedValue,

SelectedIndex

You can use these properties.

Bye

Michael

"Empire City" <a@b.com> wrote in message
news:uq%jc.30263$mX.10902882@twister.nyc.rr.com...
> I have an ASP.NET form with a DataGrid and Button. I want to put a
> RadioButtonList in a DataGrid cell. I bind it to an ArrayList which has a
> ListItem in the cell. The display part works fine. I then check some boxes
> and hit the submit button. I can't seem to get the value that is selected

on
> the RadioButton List. I don't want to use the EditTemplate thing I just

want
> to click on the radiobutton and submit the form. I also don't want to do
> autopostbacks when I click on a button. Can this be done?
>
> I looked at this link:
> http://support.microsoft.com/default...b;en-us;320707
>
> I modified the code to work with a RadioButton List not just a

RadioButton.
> However from each RadioButton List when I cycle throug the GridItems it
> tells me that one of the buttons in the list was selected but I can't seem
> to get which one.
>
> Here is my test:
>
> using System;
>
> using System.Text;
>
> 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 DataGridRadio
>
> {
>
> public class GridList
>
> {
>
> //Constructors
>
> public GridList() {}
>
> public GridList(
>
> string description,
>
> ArrayList bValue)
>
> {
>
> this.Description = description;
>
> this.BValue = bValue;
>
> }
>
> //Properties
>
> private string description;
>
> private ArrayList bValue;
>
> public string Description
>
> {
>
> get {return description;}
>
> set {description = value;}
>
> }
>
> public ArrayList BValue
>
> {
>
> get {return bValue;}
>
> set {bValue = value;}
>
> }
>
> }
>
> public class WebForm1 : System.Web.UI.Page
>
> {
>
> protected System.Web.UI.WebControls.DataGrid DataGrid1;
>
> protected System.Web.UI.WebControls.Label Message;
>
> protected System.Web.UI.WebControls.Button Button1;
>
>
> private void Page_Load(object sender, System.EventArgs e)
>
> {
>
> ArrayList blist1 = new ArrayList();
>
> ListItem li1 = new ListItem("aaa", "111");
>
> blist1.Add(li1);
>
> ListItem li2 = new ListItem("bbb", "222");
>
> blist1.Add(li2);
>
> ListItem li3 = new ListItem("ccc", "333");
>
> blist1.Add(li3);
>
>
> ArrayList blist2 = new ArrayList();
>
> ListItem li4 = new ListItem("ddd");
>
> blist2.Add(li4);
>
> ListItem li5 = new ListItem("eee");
>
> blist2.Add(li5);
>
> ListItem li6 = new ListItem("fff");
>
> blist2.Add(li6);
>
> ArrayList blist3 = new ArrayList();
>
> ListItem li7 = new ListItem("ggg");
>
> blist3.Add(li7);
>
> ListItem li8 = new ListItem("hhh");
>
> blist3.Add(li8);
>
> ListItem li9 = new ListItem("iii");
>
> blist3.Add(li9);
>
>
>
> ArrayList alist1 = new ArrayList();
>
> GridList gl1 = new GridList("aaaaaaaaaaa", blist1);
>
> alist1.Add(gl1);
>
> GridList gl2 = new GridList("bbbbbbbbbbb", blist2);
>
> alist1.Add(gl2);
>
> GridList gl3 = new GridList("ccccccccccc", blist3);
>
> alist1.Add(gl3);
>
> DataGrid1.DataSource = alist1;
>
> DataGrid1.DataBind();
>
> }
>
> #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.Button1.Click += new System.EventHandler(this.Button1_Click);
>
> this.Load += new System.EventHandler(this.Page_Load);
>
> }
>
> #endregion
>
> private void Button1_Click(object sender, System.EventArgs e)
>
> {
>
> StringBuilder gridSelections = new StringBuilder();
>
> //Loop through each DataGridItem, and determine which CheckBox controls
>
> //have been selected.
>
> foreach(DataGridItem DemoGridItem in DataGrid1.Items)
>
> {
>
> RadioButtonList myRadioButtonList =
>
> (RadioButtonList)DemoGridItem.Cells[1].Controls[1];
>
> bool b4 = myRadioButtonList.Items[1].Selected;
>
> int b1;
>
> b1 = myRadioButtonList.SelectedIndex;
>
> ListItem b2 = new ListItem();
>
> b2 = myRadioButtonList.SelectedItem;
>
> int b3 = 2;
>
> }
>
> }
>
> }
>
> }
>
>
>
>
>
>
>
>
>
>
>
>
>
>




Empire City 04-29-2004 12:11 PM

Re: RadioButtonList In A DataGrid Cell - Can I find the selected button without editing the cell?
 
For some reason SelecteItem, etc. come up as nothing or null. If you look at
the line in my code below
> bool b4 = myRadioButtonList.Items[1].Selected;

I tried all sorts of different settings and when it's in a DataGrid it only
seems to return selected if one of the buttons in the list is selected.
Trying all the suggested things below they all come back empty and I can't
seem to get the SelectedItem. I've worked with RadioButtonLists a lot but
not in the DataGrid.

"Michael Tkachev" <m_tkachev@hotmail.com> wrote in message
news:unS$ycdLEHA.2148@TK2MSFTNGP09.phx.gbl...
> RadioButtinlist has the following properties:
>
> SelectedItem,
>
> SelectedValue,
>
> SelectedIndex
>
> You can use these properties.
>
> Bye
>
> Michael
>
> "Empire City" <a@b.com> wrote in message
> news:uq%jc.30263$mX.10902882@twister.nyc.rr.com...
> > I have an ASP.NET form with a DataGrid and Button. I want to put a
> > RadioButtonList in a DataGrid cell. I bind it to an ArrayList which has

a
> > ListItem in the cell. The display part works fine. I then check some

boxes
> > and hit the submit button. I can't seem to get the value that is

selected
> on
> > the RadioButton List. I don't want to use the EditTemplate thing I just

> want
> > to click on the radiobutton and submit the form. I also don't want to do
> > autopostbacks when I click on a button. Can this be done?
> >
> > I looked at this link:
> > http://support.microsoft.com/default...b;en-us;320707
> >
> > I modified the code to work with a RadioButton List not just a

> RadioButton.
> > However from each RadioButton List when I cycle throug the GridItems it
> > tells me that one of the buttons in the list was selected but I can't

seem
> > to get which one.
> >
> > Here is my test:
> >
> > using System;
> >
> > using System.Text;
> >
> > 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 DataGridRadio
> >
> > {
> >
> > public class GridList
> >
> > {
> >
> > //Constructors
> >
> > public GridList() {}
> >
> > public GridList(
> >
> > string description,
> >
> > ArrayList bValue)
> >
> > {
> >
> > this.Description = description;
> >
> > this.BValue = bValue;
> >
> > }
> >
> > //Properties
> >
> > private string description;
> >
> > private ArrayList bValue;
> >
> > public string Description
> >
> > {
> >
> > get {return description;}
> >
> > set {description = value;}
> >
> > }
> >
> > public ArrayList BValue
> >
> > {
> >
> > get {return bValue;}
> >
> > set {bValue = value;}
> >
> > }
> >
> > }
> >
> > public class WebForm1 : System.Web.UI.Page
> >
> > {
> >
> > protected System.Web.UI.WebControls.DataGrid DataGrid1;
> >
> > protected System.Web.UI.WebControls.Label Message;
> >
> > protected System.Web.UI.WebControls.Button Button1;
> >
> >
> > private void Page_Load(object sender, System.EventArgs e)
> >
> > {
> >
> > ArrayList blist1 = new ArrayList();
> >
> > ListItem li1 = new ListItem("aaa", "111");
> >
> > blist1.Add(li1);
> >
> > ListItem li2 = new ListItem("bbb", "222");
> >
> > blist1.Add(li2);
> >
> > ListItem li3 = new ListItem("ccc", "333");
> >
> > blist1.Add(li3);
> >
> >
> > ArrayList blist2 = new ArrayList();
> >
> > ListItem li4 = new ListItem("ddd");
> >
> > blist2.Add(li4);
> >
> > ListItem li5 = new ListItem("eee");
> >
> > blist2.Add(li5);
> >
> > ListItem li6 = new ListItem("fff");
> >
> > blist2.Add(li6);
> >
> > ArrayList blist3 = new ArrayList();
> >
> > ListItem li7 = new ListItem("ggg");
> >
> > blist3.Add(li7);
> >
> > ListItem li8 = new ListItem("hhh");
> >
> > blist3.Add(li8);
> >
> > ListItem li9 = new ListItem("iii");
> >
> > blist3.Add(li9);
> >
> >
> >
> > ArrayList alist1 = new ArrayList();
> >
> > GridList gl1 = new GridList("aaaaaaaaaaa", blist1);
> >
> > alist1.Add(gl1);
> >
> > GridList gl2 = new GridList("bbbbbbbbbbb", blist2);
> >
> > alist1.Add(gl2);
> >
> > GridList gl3 = new GridList("ccccccccccc", blist3);
> >
> > alist1.Add(gl3);
> >
> > DataGrid1.DataSource = alist1;
> >
> > DataGrid1.DataBind();
> >
> > }
> >
> > #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.Button1.Click += new System.EventHandler(this.Button1_Click);
> >
> > this.Load += new System.EventHandler(this.Page_Load);
> >
> > }
> >
> > #endregion
> >
> > private void Button1_Click(object sender, System.EventArgs e)
> >
> > {
> >
> > StringBuilder gridSelections = new StringBuilder();
> >
> > //Loop through each DataGridItem, and determine which CheckBox controls
> >
> > //have been selected.
> >
> > foreach(DataGridItem DemoGridItem in DataGrid1.Items)
> >
> > {
> >
> > RadioButtonList myRadioButtonList =
> >
> > (RadioButtonList)DemoGridItem.Cells[1].Controls[1];
> >
> > bool b4 = myRadioButtonList.Items[1].Selected;
> >
> > int b1;
> >
> > b1 = myRadioButtonList.SelectedIndex;
> >
> > ListItem b2 = new ListItem();
> >
> > b2 = myRadioButtonList.SelectedItem;
> >
> > int b3 = 2;
> >
> > }
> >
> > }
> >
> > }
> >
> > }
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >

>
>




Empire City 04-30-2004 12:19 AM

Re: RadioButtonList In A DataGrid Cell - Can I find the selected button without editing the cell?
 
Hi Michael

Thanks for your help. A bit of persistance and I figured it out. I did not
properly set the DataTextField and DataValueField properties of the
RadioButtonList in the DataGrid item template. I looked at the source output
and saw the value="" and that told me I need to set that.

Thank you.



"Empire City" <a@b.com> wrote in message
news:Th6kc.69712$WA4.54674@twister.nyc.rr.com...
> For some reason SelecteItem, etc. come up as nothing or null. If you look

at
> the line in my code below
> > bool b4 = myRadioButtonList.Items[1].Selected;

> I tried all sorts of different settings and when it's in a DataGrid it

only
> seems to return selected if one of the buttons in the list is selected.
> Trying all the suggested things below they all come back empty and I can't
> seem to get the SelectedItem. I've worked with RadioButtonLists a lot but
> not in the DataGrid.
>
> "Michael Tkachev" <m_tkachev@hotmail.com> wrote in message
> news:unS$ycdLEHA.2148@TK2MSFTNGP09.phx.gbl...
> > RadioButtinlist has the following properties:
> >
> > SelectedItem,
> >
> > SelectedValue,
> >
> > SelectedIndex
> >
> > You can use these properties.
> >
> > Bye
> >
> > Michael
> >
> > "Empire City" <a@b.com> wrote in message
> > news:uq%jc.30263$mX.10902882@twister.nyc.rr.com...
> > > I have an ASP.NET form with a DataGrid and Button. I want to put a
> > > RadioButtonList in a DataGrid cell. I bind it to an ArrayList which

has
> a
> > > ListItem in the cell. The display part works fine. I then check some

> boxes
> > > and hit the submit button. I can't seem to get the value that is

> selected
> > on
> > > the RadioButton List. I don't want to use the EditTemplate thing I

just
> > want
> > > to click on the radiobutton and submit the form. I also don't want to

do
> > > autopostbacks when I click on a button. Can this be done?
> > >
> > > I looked at this link:
> > > http://support.microsoft.com/default...b;en-us;320707
> > >
> > > I modified the code to work with a RadioButton List not just a

> > RadioButton.
> > > However from each RadioButton List when I cycle throug the GridItems

it
> > > tells me that one of the buttons in the list was selected but I can't

> seem
> > > to get which one.
> > >
> > > Here is my test:
> > >
> > > using System;
> > >
> > > using System.Text;
> > >
> > > 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 DataGridRadio
> > >
> > > {
> > >
> > > public class GridList
> > >
> > > {
> > >
> > > //Constructors
> > >
> > > public GridList() {}
> > >
> > > public GridList(
> > >
> > > string description,
> > >
> > > ArrayList bValue)
> > >
> > > {
> > >
> > > this.Description = description;
> > >
> > > this.BValue = bValue;
> > >
> > > }
> > >
> > > //Properties
> > >
> > > private string description;
> > >
> > > private ArrayList bValue;
> > >
> > > public string Description
> > >
> > > {
> > >
> > > get {return description;}
> > >
> > > set {description = value;}
> > >
> > > }
> > >
> > > public ArrayList BValue
> > >
> > > {
> > >
> > > get {return bValue;}
> > >
> > > set {bValue = value;}
> > >
> > > }
> > >
> > > }
> > >
> > > public class WebForm1 : System.Web.UI.Page
> > >
> > > {
> > >
> > > protected System.Web.UI.WebControls.DataGrid DataGrid1;
> > >
> > > protected System.Web.UI.WebControls.Label Message;
> > >
> > > protected System.Web.UI.WebControls.Button Button1;
> > >
> > >
> > > private void Page_Load(object sender, System.EventArgs e)
> > >
> > > {
> > >
> > > ArrayList blist1 = new ArrayList();
> > >
> > > ListItem li1 = new ListItem("aaa", "111");
> > >
> > > blist1.Add(li1);
> > >
> > > ListItem li2 = new ListItem("bbb", "222");
> > >
> > > blist1.Add(li2);
> > >
> > > ListItem li3 = new ListItem("ccc", "333");
> > >
> > > blist1.Add(li3);
> > >
> > >
> > > ArrayList blist2 = new ArrayList();
> > >
> > > ListItem li4 = new ListItem("ddd");
> > >
> > > blist2.Add(li4);
> > >
> > > ListItem li5 = new ListItem("eee");
> > >
> > > blist2.Add(li5);
> > >
> > > ListItem li6 = new ListItem("fff");
> > >
> > > blist2.Add(li6);
> > >
> > > ArrayList blist3 = new ArrayList();
> > >
> > > ListItem li7 = new ListItem("ggg");
> > >
> > > blist3.Add(li7);
> > >
> > > ListItem li8 = new ListItem("hhh");
> > >
> > > blist3.Add(li8);
> > >
> > > ListItem li9 = new ListItem("iii");
> > >
> > > blist3.Add(li9);
> > >
> > >
> > >
> > > ArrayList alist1 = new ArrayList();
> > >
> > > GridList gl1 = new GridList("aaaaaaaaaaa", blist1);
> > >
> > > alist1.Add(gl1);
> > >
> > > GridList gl2 = new GridList("bbbbbbbbbbb", blist2);
> > >
> > > alist1.Add(gl2);
> > >
> > > GridList gl3 = new GridList("ccccccccccc", blist3);
> > >
> > > alist1.Add(gl3);
> > >
> > > DataGrid1.DataSource = alist1;
> > >
> > > DataGrid1.DataBind();
> > >
> > > }
> > >
> > > #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.Button1.Click += new System.EventHandler(this.Button1_Click);
> > >
> > > this.Load += new System.EventHandler(this.Page_Load);
> > >
> > > }
> > >
> > > #endregion
> > >
> > > private void Button1_Click(object sender, System.EventArgs e)
> > >
> > > {
> > >
> > > StringBuilder gridSelections = new StringBuilder();
> > >
> > > //Loop through each DataGridItem, and determine which CheckBox

controls
> > >
> > > //have been selected.
> > >
> > > foreach(DataGridItem DemoGridItem in DataGrid1.Items)
> > >
> > > {
> > >
> > > RadioButtonList myRadioButtonList =
> > >
> > > (RadioButtonList)DemoGridItem.Cells[1].Controls[1];
> > >
> > > bool b4 = myRadioButtonList.Items[1].Selected;
> > >
> > > int b1;
> > >
> > > b1 = myRadioButtonList.SelectedIndex;
> > >
> > > ListItem b2 = new ListItem();
> > >
> > > b2 = myRadioButtonList.SelectedItem;
> > >
> > > int b3 = 2;
> > >
> > > }
> > >
> > > }
> > >
> > > }
> > >
> > > }
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >

> >
> >

>
>





All times are GMT. The time now is 12:56 AM.

Powered by vBulletin®. Copyright ©2000 - 2014, vBulletin Solutions, Inc.
SEO by vBSEO ©2010, Crawlability, Inc.