GridView - RadioButton for survey, idea needed

P

Patrik

hello,

based on a client login I call a GridView that presents the appropriate
questionnaire for that person. I added three columns (template fields)
to the gridview that are radiobuttons. The client has to choose one
radiobutton per row (either YES, NO, or PERHAPS). Yes would have a
value of 1, No 2, perhaps 3.

1) I need to restrict the choice to one of the three radiobuttons ?
2) Need to insert the client's choice for every row in my table.

maybe someone could fix the general idea below or propose somethnig
else

For each row in Gridview1.rows
If (radiobutton1 = true) then result = 1
ElseIf (radiobutton1 = true) then result = 2
ElseIf (radiobutton1 = true) then result = 3
EndIf
resultrow = result
Next
Then again, i would need as many resultrow variables as there are rows,
then I would do one insert because in my final table one line is one
client and all his answers

Thanks you
 
K

Ken Cox [Microsoft MVP]

Salut Patrik,

It might be easier to put all of the choices in one column and then grab the
selected value from that. Here's a little sample in case it gives you an
idea. BTW, this uses the editable XMLDataSource from http://www.chaliy.com/
..

Let us know?

Ken
Microsoft MVP [ASP.NET]

<%@ Page Language="VB" %>
<%@ register assembly="Chaliy.Web.UI.UpdatableXmlDataSource"
namespace="Chaliy.Web.UI" tagprefix="cc1" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Radio Buttons in Gridview</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:gridview id="GridView1" runat="server" allowpaging="True"
allowsorting="True" autogeneratecolumns="False"
autogeneratedeletebutton="True" autogenerateeditbutton="True"
datasourceid="UpdatableXmlDataSource1">
<columns>
<asp:templatefield headertext="Choice"
sortexpression="Choice">
<edititemtemplate>
<asp:radiobuttonlist id="RadioButtonList1"
runat="server" selectedvalue='<%# Bind("Choice") %>'>
<asp:listitem value="1">Yes</asp:listitem>
<asp:listitem value="2">No</asp:listitem>
<asp:listitem value="3">Perhaps</asp:listitem>
</asp:radiobuttonlist>
</edititemtemplate>
<itemtemplate>
<asp:radiobuttonlist id="RadioButtonList1"
runat="server" selectedvalue='<%# Bind("Choice") %>'>
<asp:listitem value="1">Yes</asp:listitem>
<asp:listitem value="2">No</asp:listitem>
<asp:listitem value="3">Perhaps</asp:listitem>
</asp:radiobuttonlist>
</itemtemplate>
</asp:templatefield>
<asp:boundfield datafield="StringValue"
headertext="StringValue" sortexpression="StringValue" />
<asp:boundfield datafield="CurrencyValue"
headertext="CurrencyValue" sortexpression="CurrencyValue" />
<asp:boundfield datafield="Boolean" headertext="Boolean"
sortexpression="Boolean" />
</columns>
</asp:gridview>

<asp:hyperlink id="AddNewHyperLink" runat="server"
navigateurl="~/AddNew.aspx">Add new</asp:hyperlink>
<cc1:updatablexmldatasource id="UpdatableXmlDataSource1"
runat="server" datafile="~/App_Data/TestData.xml" filterxpath="/Item"
rootxpath="Data">
<data>
</data>
</cc1:updatablexmldatasource>

</div>
</form>
</body>
</html>

<?xml version="1.0" encoding="utf-8"?>
<Data>
<Item Choice="3" StringValue="Item1" CurrencyValue="1.99" Boolean="True"
/>
<Item Choice="2" StringValue="Item2" CurrencyValue="2.99" Boolean="True"
/>
<Item Choice="2" StringValue="Item3" CurrencyValue="3.99" Boolean="True"
/>
<Item Choice="3" StringValue="Item4" CurrencyValue="5.99" Boolean="True"
/>
<Item Choice="3" StringValue="Item5" CurrencyValue="4.99" Boolean="True"
/>
</Data>
 
P

Patrik

Thank you for the suggestion,

I have to admit this would be quite easier, but for the actual task I
have 5 choices (rating scale) and up to 40 questions, this would be to
costly in space and my clients are used to the layout on paper.

So I really have to figure it out. I CANNOT believe how difficult this
seems and that no one had a similar problem, I have been reading for
two days everywhere.

I'll try some more and then I'll surrender for your option I guess.


Ken Cox [Microsoft MVP] a écrit :
Salut Patrik,

It might be easier to put all of the choices in one column and then grab the
selected value from that. Here's a little sample in case it gives you an
idea. BTW, this uses the editable XMLDataSource from http://www.chaliy.com/
.

Let us know?

Ken
Microsoft MVP [ASP.NET]

<%@ Page Language="VB" %>
<%@ register assembly="Chaliy.Web.UI.UpdatableXmlDataSource"
namespace="Chaliy.Web.UI" tagprefix="cc1" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Radio Buttons in Gridview</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:gridview id="GridView1" runat="server" allowpaging="True"
allowsorting="True" autogeneratecolumns="False"
autogeneratedeletebutton="True" autogenerateeditbutton="True"
datasourceid="UpdatableXmlDataSource1">
<columns>
<asp:templatefield headertext="Choice"
sortexpression="Choice">
<edititemtemplate>
<asp:radiobuttonlist id="RadioButtonList1"
runat="server" selectedvalue='<%# Bind("Choice") %>'>
<asp:listitem value="1">Yes</asp:listitem>
<asp:listitem value="2">No</asp:listitem>
<asp:listitem value="3">Perhaps</asp:listitem>
</asp:radiobuttonlist>
</edititemtemplate>
<itemtemplate>
<asp:radiobuttonlist id="RadioButtonList1"
runat="server" selectedvalue='<%# Bind("Choice") %>'>
<asp:listitem value="1">Yes</asp:listitem>
<asp:listitem value="2">No</asp:listitem>
<asp:listitem value="3">Perhaps</asp:listitem>
</asp:radiobuttonlist>
</itemtemplate>
</asp:templatefield>
<asp:boundfield datafield="StringValue"
headertext="StringValue" sortexpression="StringValue" />
<asp:boundfield datafield="CurrencyValue"
headertext="CurrencyValue" sortexpression="CurrencyValue" />
<asp:boundfield datafield="Boolean" headertext="Boolean"
sortexpression="Boolean" />
</columns>
</asp:gridview>

<asp:hyperlink id="AddNewHyperLink" runat="server"
navigateurl="~/AddNew.aspx">Add new</asp:hyperlink>
<cc1:updatablexmldatasource id="UpdatableXmlDataSource1"
runat="server" datafile="~/App_Data/TestData.xml" filterxpath="/Item"
rootxpath="Data">
<data>
</data>
</cc1:updatablexmldatasource>

</div>
</form>
</body>
</html>

<?xml version="1.0" encoding="utf-8"?>
<Data>
<Item Choice="3" StringValue="Item1" CurrencyValue="1.99" Boolean="True"
/>
<Item Choice="2" StringValue="Item2" CurrencyValue="2.99" Boolean="True"
/>
<Item Choice="2" StringValue="Item3" CurrencyValue="3.99" Boolean="True"
/>
<Item Choice="3" StringValue="Item4" CurrencyValue="5.99" Boolean="True"
/>
<Item Choice="3" StringValue="Item5" CurrencyValue="4.99" Boolean="True"
/>
</Data>


Patrik said:
hello,

based on a client login I call a GridView that presents the appropriate
questionnaire for that person. I added three columns (template fields)
to the gridview that are radiobuttons. The client has to choose one
radiobutton per row (either YES, NO, or PERHAPS). Yes would have a
value of 1, No 2, perhaps 3.

1) I need to restrict the choice to one of the three radiobuttons ?
2) Need to insert the client's choice for every row in my table.

maybe someone could fix the general idea below or propose somethnig
else

For each row in Gridview1.rows
If (radiobutton1 = true) then result = 1
ElseIf (radiobutton1 = true) then result = 2
ElseIf (radiobutton1 = true) then result = 3
EndIf
resultrow = result
Next
Then again, i would need as many resultrow variables as there are rows,
then I would do one insert because in my final table one line is one
client and all his answers

Thanks you
 
P

Patrik

Here's how I am solving it :
radiobuttonlist in the itemtemplate, i make it horizontal, then i add a
table on top of the grid to insert the headertext for the buttons.


Patrik a écrit :
Thank you for the suggestion,

I have to admit this would be quite easier, but for the actual task I
have 5 choices (rating scale) and up to 40 questions, this would be to
costly in space and my clients are used to the layout on paper.

So I really have to figure it out. I CANNOT believe how difficult this
seems and that no one had a similar problem, I have been reading for
two days everywhere.

I'll try some more and then I'll surrender for your option I guess.


Ken Cox [Microsoft MVP] a écrit :
Salut Patrik,

It might be easier to put all of the choices in one column and then grab the
selected value from that. Here's a little sample in case it gives you an
idea. BTW, this uses the editable XMLDataSource from http://www.chaliy.com/
.

Let us know?

Ken
Microsoft MVP [ASP.NET]

<%@ Page Language="VB" %>
<%@ register assembly="Chaliy.Web.UI.UpdatableXmlDataSource"
namespace="Chaliy.Web.UI" tagprefix="cc1" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Radio Buttons in Gridview</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:gridview id="GridView1" runat="server" allowpaging="True"
allowsorting="True" autogeneratecolumns="False"
autogeneratedeletebutton="True" autogenerateeditbutton="True"
datasourceid="UpdatableXmlDataSource1">
<columns>
<asp:templatefield headertext="Choice"
sortexpression="Choice">
<edititemtemplate>
<asp:radiobuttonlist id="RadioButtonList1"
runat="server" selectedvalue='<%# Bind("Choice") %>'>
<asp:listitem value="1">Yes</asp:listitem>
<asp:listitem value="2">No</asp:listitem>
<asp:listitem value="3">Perhaps</asp:listitem>
</asp:radiobuttonlist>
</edititemtemplate>
<itemtemplate>
<asp:radiobuttonlist id="RadioButtonList1"
runat="server" selectedvalue='<%# Bind("Choice") %>'>
<asp:listitem value="1">Yes</asp:listitem>
<asp:listitem value="2">No</asp:listitem>
<asp:listitem value="3">Perhaps</asp:listitem>
</asp:radiobuttonlist>
</itemtemplate>
</asp:templatefield>
<asp:boundfield datafield="StringValue"
headertext="StringValue" sortexpression="StringValue" />
<asp:boundfield datafield="CurrencyValue"
headertext="CurrencyValue" sortexpression="CurrencyValue" />
<asp:boundfield datafield="Boolean" headertext="Boolean"
sortexpression="Boolean" />
</columns>
</asp:gridview>

<asp:hyperlink id="AddNewHyperLink" runat="server"
navigateurl="~/AddNew.aspx">Add new</asp:hyperlink>
<cc1:updatablexmldatasource id="UpdatableXmlDataSource1"
runat="server" datafile="~/App_Data/TestData.xml" filterxpath="/Item"
rootxpath="Data">
<data>
</data>
</cc1:updatablexmldatasource>

</div>
</form>
</body>
</html>

<?xml version="1.0" encoding="utf-8"?>
<Data>
<Item Choice="3" StringValue="Item1" CurrencyValue="1.99" Boolean="True"
/>
<Item Choice="2" StringValue="Item2" CurrencyValue="2.99" Boolean="True"
/>
<Item Choice="2" StringValue="Item3" CurrencyValue="3.99" Boolean="True"
/>
<Item Choice="3" StringValue="Item4" CurrencyValue="5.99" Boolean="True"
/>
<Item Choice="3" StringValue="Item5" CurrencyValue="4.99" Boolean="True"
/>
</Data>


Patrik said:
hello,

based on a client login I call a GridView that presents the appropriate
questionnaire for that person. I added three columns (template fields)
to the gridview that are radiobuttons. The client has to choose one
radiobutton per row (either YES, NO, or PERHAPS). Yes would have a
value of 1, No 2, perhaps 3.

1) I need to restrict the choice to one of the three radiobuttons ?
2) Need to insert the client's choice for every row in my table.

maybe someone could fix the general idea below or propose somethnig
else

For each row in Gridview1.rows
If (radiobutton1 = true) then result = 1
ElseIf (radiobutton1 = true) then result = 2
ElseIf (radiobutton1 = true) then result = 3
EndIf
resultrow = result
Next
Then again, i would need as many resultrow variables as there are rows,
then I would do one insert because in my final table one line is one
client and all his answers

Thanks you
 
K

Ken Cox [Microsoft MVP]

Sounds good!

Here's how I am solving it :
radiobuttonlist in the itemtemplate, i make it horizontal, then i add a
table on top of the grid to insert the headertext for the buttons.


Patrik a écrit :
Thank you for the suggestion,

I have to admit this would be quite easier, but for the actual task I
have 5 choices (rating scale) and up to 40 questions, this would be to
costly in space and my clients are used to the layout on paper.

So I really have to figure it out. I CANNOT believe how difficult this
seems and that no one had a similar problem, I have been reading for
two days everywhere.

I'll try some more and then I'll surrender for your option I guess.


Ken Cox [Microsoft MVP] a écrit :
Salut Patrik,

It might be easier to put all of the choices in one column and then grab
the
selected value from that. Here's a little sample in case it gives you an
idea. BTW, this uses the editable XMLDataSource from
http://www.chaliy.com/
.

Let us know?

Ken
Microsoft MVP [ASP.NET]

<%@ Page Language="VB" %>
<%@ register assembly="Chaliy.Web.UI.UpdatableXmlDataSource"
namespace="Chaliy.Web.UI" tagprefix="cc1" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Radio Buttons in Gridview</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:gridview id="GridView1" runat="server" allowpaging="True"
allowsorting="True" autogeneratecolumns="False"
autogeneratedeletebutton="True" autogenerateeditbutton="True"
datasourceid="UpdatableXmlDataSource1">
<columns>
<asp:templatefield headertext="Choice"
sortexpression="Choice">
<edititemtemplate>
<asp:radiobuttonlist id="RadioButtonList1"
runat="server" selectedvalue='<%# Bind("Choice") %>'>
<asp:listitem value="1">Yes</asp:listitem>
<asp:listitem value="2">No</asp:listitem>
<asp:listitem
value="3">Perhaps</asp:listitem>
</asp:radiobuttonlist>
</edititemtemplate>
<itemtemplate>
<asp:radiobuttonlist id="RadioButtonList1"
runat="server" selectedvalue='<%# Bind("Choice") %>'>
<asp:listitem value="1">Yes</asp:listitem>
<asp:listitem value="2">No</asp:listitem>
<asp:listitem
value="3">Perhaps</asp:listitem>
</asp:radiobuttonlist>
</itemtemplate>
</asp:templatefield>
<asp:boundfield datafield="StringValue"
headertext="StringValue" sortexpression="StringValue" />
<asp:boundfield datafield="CurrencyValue"
headertext="CurrencyValue" sortexpression="CurrencyValue" />
<asp:boundfield datafield="Boolean" headertext="Boolean"
sortexpression="Boolean" />
</columns>
</asp:gridview>

<asp:hyperlink id="AddNewHyperLink" runat="server"
navigateurl="~/AddNew.aspx">Add new</asp:hyperlink>
<cc1:updatablexmldatasource id="UpdatableXmlDataSource1"
runat="server" datafile="~/App_Data/TestData.xml" filterxpath="/Item"
rootxpath="Data">
<data>
</data>
</cc1:updatablexmldatasource>

</div>
</form>
</body>
</html>

<?xml version="1.0" encoding="utf-8"?>
<Data>
<Item Choice="3" StringValue="Item1" CurrencyValue="1.99"
Boolean="True"
/>
<Item Choice="2" StringValue="Item2" CurrencyValue="2.99"
Boolean="True"
/>
<Item Choice="2" StringValue="Item3" CurrencyValue="3.99"
Boolean="True"
/>
<Item Choice="3" StringValue="Item4" CurrencyValue="5.99"
Boolean="True"
/>
<Item Choice="3" StringValue="Item5" CurrencyValue="4.99"
Boolean="True"
/>
</Data>


Patrik said:
hello,

based on a client login I call a GridView that presents the
appropriate
questionnaire for that person. I added three columns (template fields)
to the gridview that are radiobuttons. The client has to choose one
radiobutton per row (either YES, NO, or PERHAPS). Yes would have a
value of 1, No 2, perhaps 3.

1) I need to restrict the choice to one of the three radiobuttons ?
2) Need to insert the client's choice for every row in my table.

maybe someone could fix the general idea below or propose somethnig
else

For each row in Gridview1.rows
If (radiobutton1 = true) then result = 1
ElseIf (radiobutton1 = true) then result = 2
ElseIf (radiobutton1 = true) then result = 3
EndIf
resultrow = result
Next
Then again, i would need as many resultrow variables as there are
rows,
then I would do one insert because in my final table one line is one
client and all his answers

Thanks you
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,576
Members
45,054
Latest member
LucyCarper

Latest Threads

Top