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

Getting data *from* a repeater (or maybe datalist?)

P: n/a
I am using PlaceHolders in a Repeater to generate a multi choice
survey. I need a way of testing to see what the placeholder has been
turned into at runtime, and reading out the data.

The admin can add questions to a survey, then add possible answers to
each question. Certain functions are also set, for example multi
answer (display with a checkboxlist) single answer (radiolist). Also
toggle the presence of an "other" selection which produces a textbox
to type into.

The questions and answers are held in a SQL Server Database.

The survey output page reads the questions from the database, and
builds the survey using a repeater.

when a "respondent" arrives to fill out the survey they click the
answers they wish, fill in the boxes and press submit.

My problem is how do i then read out the checked answers?

This link may work, may not :)

I will leave it so everyone is admin over the weekend. if you break it
i would be interested to know what you did :)
Brief instructions, click add question to add a new Q. You MUST put an
Integer in the Question number field. it does not auto number and a
null will break it.

Once a new Q is added click edit (pencil icon) and add Answers. (you
can arrange the order of A with the up and down arrow. Note how the
selected A *remains* selected!)

http://bagheera.ncl.ac.uk/dps/Deskto...ex=17&tabid=97

I am not sure what code will help make my query understandable!

Here is the template column for the repeater

<itemTemplate>
<table border="0">
<tr>
<td> <asp:HyperLink id= "editLink" ImageUrl="~/images/edit.gif"
NavigateUrl='<%# "~/DesktopModules/awsurvey/Question_Edit.aspx?ItemID="
& DataBinder.Eval(Container.DataItem, "ItemID") & "&mid=" & ModuleId
%>' Visible= "<%# IsEditable %>" runat= "server" />
<span class="normal">Q<%#
Container.dataitem("questionNo") %></span></td>
<td><span class="normal" style="font-size:1.1em;"><%#
Container.dataitem("question") %> </span></td>
</tr>
<tr>
<td rowspan="2">&nbsp;</td>
<td><span class="normal" style="font-size:0.7em; color:blue;"> <%#
Container.dataitem("Instruction") %> </span></td>
</tr>
<tr>
<td><asp:PlaceHolder id="ph1" runat="server"/>
<br>
<asp:panel id="otherPanel" runat=server visible="false">
<asp:label runat="server" id="other" /> Other (please
specify)<asp:textbox id="otherTb" runat="server"/>
</asp:panel>
</td>
</tr>
</table>
</itemTemplate>

Here is the OnDataBound sub "type" is either "radio" or "checkbox".
"other" is boolean.

sub QuestionListDataBound(Sender As Object, e As
RepeaterItemEventArgs)
If (e.Item.ItemType = ListItemType.Item) Or _
(e.Item.ItemType = ListItemType.AlternatingItem) Then

select Case DataBinder.Eval(e.Item.DataItem, "type")

case "radio" :

dim lab as new radiobuttonlist
lab.datasource = Questions.GetAnswersbyQuestion(
DataBinder.Eval(e.Item.DataItem, "itemID"))
lab.datatextfield="Answer"
lab.DataValueField="itemId"

lab.databind
CType(e.Item.FindControl("ph1"),
PlaceHolder).controls.add(lab)

case "checkbox" :

dim lab as new checkboxlist
lab.datasource = Questions.GetAnswersbyQuestion(
DataBinder.Eval(e.Item.DataItem, "itemID"))
lab.datatextfield="Answer"
lab.DataValueField="itemId"
lab.databind
CType(e.Item.FindControl("ph1"),
PlaceHolder).controls.add(lab)

end select

if DataBinder.Eval(e.Item.DataItem, "other")

CType(e.Item.FindControl("otherPanel"), panel).visible=true

end if

end if
end sub
Here is my submitClick (you can fill it in for me :)

sub submit_click(sender As Object, e As System.EventArgs)

' get list of stuff in repeater
' go through each in list
' read out checked item(or items)
' read out "other" string
' enter all into DB

end sub

I bind to the repeater at page load

QuestionList.DataSource =Questions.GetQuestions(ModuleId)
QuestionList.DataBind()
Thing I really want answered :-
How do I read out what boxes where checked when a user hits the
button.

Thanks for any ideas.

Fragg
Nov 17 '05 #1
Share this question for a faster answer!
Share on Google+

This discussion thread is closed

Replies have been disabled for this discussion.