By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
440,291 Members | 3,120 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 440,291 IT Pros & Developers. It's quick & easy.

Setting the SelectedIndex value of a RadioButtonList

P: n/a
Can somebody tell me what would be the syntax for having an if statement and
setting the selected index of a radiobuttonlist?
This is my first project using ASP.net and I use C#.
I have a repeater with like a table layout and in the last column I want to
have three radio buttons (for each row in repeater). The value of the radio
button should be calculated from a value from the dataset.
How can I do that? When I try to use a variable inside the <asp:listitem
..... runat=server/> tag I get an error saying that I cannnot use varibles in
a server control.
Sample code (it will be inside a table which I do no show in this sample,
for clarity)
<asp:repeater id="rptEstimates" runat="server">
<HeaderTemplate>............</HeaderTemplate>
<ItemTemplate>
<%#DataBinder.Eval(Container,"DataItem.ProjectName ")%>
...here I have a few more bound columns

...here I want to have an if statement to check the value from the daset
and to set the selected index value of the radiobuttonlist
<script runat=server>
string val=(string)ds.Fields.Item["BidResponse"];
if(val.Equals("Y"){rb1.SelectedIndex=0;}
</script> (this does not work)

<asp:RadioButtonList id="rb1" SelectedIndex=selIndex Runat=server>
<asp:ListItem Value=Y>Yes</asp:ListItem>
<asp:ListItem Value=N>No</asp:ListItem>
<asp:ListItem Value=NR>Nr</asp:ListItem>
</asp:RadioButtonList>
</ItemTemplate>
</asp:reapeater>

thank you.

Nov 18 '05 #1
Share this Question
Share on Google+
4 Replies


P: n/a
You can use
RadioButtonList.SelectedValue =(string)ds.Fields.Item["BidResponse"];
but you have to be sure that ds.Fields.Item["BidResponse"]; will return Y, N
or NR otherwise the application will throw ArgumentOutOfRangeException

Regards
Martin

"Emil" <EM******@binsky.com> wrote in message
news:u0*************@TK2MSFTNGP10.phx.gbl...
Can somebody tell me what would be the syntax for having an if statement and setting the selected index of a radiobuttonlist?
This is my first project using ASP.net and I use C#.
I have a repeater with like a table layout and in the last column I want to have three radio buttons (for each row in repeater). The value of the radio button should be calculated from a value from the dataset.
How can I do that? When I try to use a variable inside the <asp:listitem
.... runat=server/> tag I get an error saying that I cannnot use varibles in a server control.
Sample code (it will be inside a table which I do no show in this sample,
for clarity)
<asp:repeater id="rptEstimates" runat="server">
<HeaderTemplate>............</HeaderTemplate>
<ItemTemplate>
<%#DataBinder.Eval(Container,"DataItem.ProjectName ")%>
...here I have a few more bound columns

...here I want to have an if statement to check the value from the daset
and to set the selected index value of the radiobuttonlist
<script runat=server>
string val=(string)ds.Fields.Item["BidResponse"];
if(val.Equals("Y"){rb1.SelectedIndex=0;}
</script> (this does not work)

<asp:RadioButtonList id="rb1" SelectedIndex=selIndex Runat=server>
<asp:ListItem Value=Y>Yes</asp:ListItem>
<asp:ListItem Value=N>No</asp:ListItem>
<asp:ListItem Value=NR>Nr</asp:ListItem>
</asp:RadioButtonList>
</ItemTemplate>
</asp:reapeater>

thank you.

Nov 18 '05 #2

P: n/a
OK, and where should I have this statement?
If i try<asp:RadioButtonList ID="rbl"
SelectedIndex=<%=(string)ds.Fields.Item["BidResponse"];%>
i get an error msg: Server tags cannot contain <% ... %> constructor.
If I use it befor to have the <asp:RadioButtonList> tag like,
<% rbl.SelectedIndex=(string)ds.Fields.Item["BidResponse"]; %> I get an
error:

Compiler Error Message: CS0246: The type or namespace name 'rbl' could not
be found (are you missing a using directive or an assembly reference?)

And besides that the field contains either "Y", "N", "NR" or nulls.
Anyway thank you for your response.
"Martin Marinov" <me********@mecrossroad.bg> wrote in message
news:uT**************@TK2MSFTNGP09.phx.gbl...
You can use
RadioButtonList.SelectedValue =(string)ds.Fields.Item["BidResponse"];
but you have to be sure that ds.Fields.Item["BidResponse"]; will return Y, N or NR otherwise the application will throw ArgumentOutOfRangeException

Regards
Martin

"Emil" <EM******@binsky.com> wrote in message
news:u0*************@TK2MSFTNGP10.phx.gbl...
Can somebody tell me what would be the syntax for having an if statement and
setting the selected index of a radiobuttonlist?
This is my first project using ASP.net and I use C#.
I have a repeater with like a table layout and in the last column I want

to
have three radio buttons (for each row in repeater). The value of the

radio
button should be calculated from a value from the dataset.
How can I do that? When I try to use a variable inside the <asp:listitem
.... runat=server/> tag I get an error saying that I cannnot use varibles in
a server control.
Sample code (it will be inside a table which I do no show in this

sample, for clarity)
<asp:repeater id="rptEstimates" runat="server">
<HeaderTemplate>............</HeaderTemplate>
<ItemTemplate>
<%#DataBinder.Eval(Container,"DataItem.ProjectName ")%>
...here I have a few more bound columns

...here I want to have an if statement to check the value from the daset and to set the selected index value of the radiobuttonlist
<script runat=server>
string val=(string)ds.Fields.Item["BidResponse"];
if(val.Equals("Y"){rb1.SelectedIndex=0;}
</script> (this does not work)

<asp:RadioButtonList id="rb1" SelectedIndex=selIndex Runat=server> <asp:ListItem Value=Y>Yes</asp:ListItem>
<asp:ListItem Value=N>No</asp:ListItem>
<asp:ListItem Value=NR>Nr</asp:ListItem>
</asp:RadioButtonList>
</ItemTemplate>
</asp:reapeater>

thank you.


Nov 18 '05 #3

P: n/a

because the radiobuttonlist is a nested control you have to use
ItemDataBound event of the repeater control
you can use this :

<asp:repeater id="rptEstimates" runat="server" ItemDataBound="DataBoundItem>
....

<script runat="server">
void DataBoundItem(Object Sender, RepeaterItemEventArgs e) {

// This event is raised for the header, the footer, separators,
and items.

// Execute the following logic for Items and Alternating Items.
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType ==
ListItemType.AlternatingItem) {
RadioButtonList rbl =
(RadioButtonList)e.Item.FindControl("rptEstimates" );
if ( rbl != null )
{
rbl.SelectedValue =
(string)((DataRow)e.Item.DataItem)["BidResponse"];
}
}
}

Regards,
Martin Marinov

</script>
"Emil" <EM******@binsky.com> wrote in message
news:uJ**************@TK2MSFTNGP11.phx.gbl...
OK, and where should I have this statement?
If i try<asp:RadioButtonList ID="rbl"
SelectedIndex=<%=(string)ds.Fields.Item["BidResponse"];%>
i get an error msg: Server tags cannot contain <% ... %> constructor.
If I use it befor to have the <asp:RadioButtonList> tag like,
<% rbl.SelectedIndex=(string)ds.Fields.Item["BidResponse"]; %> I get an
error:

Compiler Error Message: CS0246: The type or namespace name 'rbl' could not
be found (are you missing a using directive or an assembly reference?)

And besides that the field contains either "Y", "N", "NR" or nulls.
Anyway thank you for your response.
"Martin Marinov" <me********@mecrossroad.bg> wrote in message
news:uT**************@TK2MSFTNGP09.phx.gbl...
You can use
RadioButtonList.SelectedValue =(string)ds.Fields.Item["BidResponse"];
but you have to be sure that ds.Fields.Item["BidResponse"]; will return Y,
N
or NR otherwise the application will throw ArgumentOutOfRangeException

Regards
Martin

"Emil" <EM******@binsky.com> wrote in message
news:u0*************@TK2MSFTNGP10.phx.gbl...
Can somebody tell me what would be the syntax for having an if statement
and
setting the selected index of a radiobuttonlist?
This is my first project using ASP.net and I use C#.
I have a repeater with like a table layout and in the last column I
want to
have three radio buttons (for each row in repeater). The value of the

radio
button should be calculated from a value from the dataset.
How can I do that? When I try to use a variable inside the

<asp:listitem .... runat=server/> tag I get an error saying that I cannnot use

varibles
in
a server control.
Sample code (it will be inside a table which I do no show in this

sample, for clarity)
<asp:repeater id="rptEstimates" runat="server">
<HeaderTemplate>............</HeaderTemplate>
<ItemTemplate>
<%#DataBinder.Eval(Container,"DataItem.ProjectName ")%>
...here I have a few more bound columns

...here I want to have an if statement to check the value from the daset and to set the selected index value of the radiobuttonlist
<script runat=server>
string val=(string)ds.Fields.Item["BidResponse"];
if(val.Equals("Y"){rb1.SelectedIndex=0;}
</script> (this does not work)

<asp:RadioButtonList id="rb1" SelectedIndex=selIndex Runat=server> <asp:ListItem Value=Y>Yes</asp:ListItem>
<asp:ListItem Value=N>No</asp:ListItem>
<asp:ListItem Value=NR>Nr</asp:ListItem>
</asp:RadioButtonList>
</ItemTemplate>
</asp:reapeater>

thank you.



Nov 18 '05 #4

P: n/a
Thank you Martin,
based on your solution I did something that works.
public void rbl_OnItemDataBound(Object Sender, RepeaterItemEventArgs e){

if(e.Item.ItemType==ListItemType.Item||e.Item.Item Type==ListItemType.Alterna
tingItem){
RadioButtonList rbl=(RadioButtonList)e.Item.FindControl("rbl");
if(rbl !=null ){

//rbl.SelectedValue=(string)((DataRow)e.Item.DataIte m)["BidResponse"];
//this statement issues an error

string bid="";

bid=(string)DataBinder.Eval(e.Item.DataItem,"BidRe sponse");

if(bid.Equals("Y")){rbl.SelectedIndex=0;}

if(bid.Equals("N")){rbl.SelectedIndex=1;}

if(bid.Equals("NR")){rbl.SelectedIndex=2;}


}}}
"Martin Marinov" <me********@mecrossroad.bg> wrote in message
news:Og**************@TK2MSFTNGP12.phx.gbl...

because the radiobuttonlist is a nested control you have to use
ItemDataBound event of the repeater control
you can use this :

<asp:repeater id="rptEstimates" runat="server" ItemDataBound="DataBoundItem> ...

<script runat="server">
void DataBoundItem(Object Sender, RepeaterItemEventArgs e) {

// This event is raised for the header, the footer, separators,
and items.

// Execute the following logic for Items and Alternating Items.
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType ==
ListItemType.AlternatingItem) {
RadioButtonList rbl =
(RadioButtonList)e.Item.FindControl("rptEstimates" );
if ( rbl != null )
{
rbl.SelectedValue =
(string)((DataRow)e.Item.DataItem)["BidResponse"];
}
}
}

Regards,
Martin Marinov

</script>
"Emil" <EM******@binsky.com> wrote in message
news:uJ**************@TK2MSFTNGP11.phx.gbl...
OK, and where should I have this statement?
If i try<asp:RadioButtonList ID="rbl"
SelectedIndex=<%=(string)ds.Fields.Item["BidResponse"];%>
i get an error msg: Server tags cannot contain <% ... %> constructor.
If I use it befor to have the <asp:RadioButtonList> tag like,
<% rbl.SelectedIndex=(string)ds.Fields.Item["BidResponse"]; %> I get an
error:

Compiler Error Message: CS0246: The type or namespace name 'rbl' could not
be found (are you missing a using directive or an assembly reference?)

And besides that the field contains either "Y", "N", "NR" or nulls.
Anyway thank you for your response.
"Martin Marinov" <me********@mecrossroad.bg> wrote in message
news:uT**************@TK2MSFTNGP09.phx.gbl...
You can use
RadioButtonList.SelectedValue =(string)ds.Fields.Item["BidResponse"];
but you have to be sure that ds.Fields.Item["BidResponse"]; will return
Y,
N
or NR otherwise the application will throw ArgumentOutOfRangeException

Regards
Martin

"Emil" <EM******@binsky.com> wrote in message
news:u0*************@TK2MSFTNGP10.phx.gbl...
> Can somebody tell me what would be the syntax for having an if

statement and
> setting the selected index of a radiobuttonlist?
> This is my first project using ASP.net and I use C#.
> I have a repeater with like a table layout and in the last column I want to
> have three radio buttons (for each row in repeater). The value of
the radio
> button should be calculated from a value from the dataset.
> How can I do that? When I try to use a variable inside the

<asp:listitem > .... runat=server/> tag I get an error saying that I cannnot use

varibles
in
> a server control.
> Sample code (it will be inside a table which I do no show in this

sample,
> for clarity)
> <asp:repeater id="rptEstimates" runat="server">
> <HeaderTemplate>............</HeaderTemplate>
> <ItemTemplate>
> <%#DataBinder.Eval(Container,"DataItem.ProjectName ")%>
> ...here I have a few more bound columns
>
> ...here I want to have an if statement to check the value from the

daset
> and to set the selected index value of the radiobuttonlist
> <script runat=server>
> string val=(string)ds.Fields.Item["BidResponse"];
> if(val.Equals("Y"){rb1.SelectedIndex=0;}
> </script> (this does not work)
>
> <asp:RadioButtonList id="rb1" SelectedIndex=selIndex

Runat=server>
> <asp:ListItem Value=Y>Yes</asp:ListItem>
> <asp:ListItem Value=N>No</asp:ListItem>
> <asp:ListItem Value=NR>Nr</asp:ListItem>
> </asp:RadioButtonList>
> </ItemTemplate>
> </asp:reapeater>
>
> thank you.
>
>
>



Nov 18 '05 #5

This discussion thread is closed

Replies have been disabled for this discussion.