如何在导航DataPager时保留选定的HTML5单选按钮值?

时间:2014-11-12 06:18:49

标签: c# asp.net radio-button listviewitem datapager

我正在尝试创建一个在线调查问卷,这是我网站的前端

 <table>
    <tbody>

        <asp:ListView ID="lvQuestion" runat="server"  OnPagePropertiesChanged="lvQuestion_OnPagePropertiesChanged" OnPagePropertiesChanging="lvQuestion_PagePropertiesChanging">
             <LayoutTemplate>
            <ul>
                <asp:PlaceHolder ID="itemPlaceholder" runat="server" />
            </ul>
            </LayoutTemplate>
            <ItemTemplate>
                <tr runat="server">
                    <td><%# Eval("theQuestion") %></td>
                </tr>
                <tr>
                    <td><input type="radio" name="choice" value="<%# Eval("Choice1") %>" /><%# Eval("Choice1") %></td>
                    <td><input type="radio" name="choice" value="<%# Eval("Choice2") %>" /><%# Eval("Choice2") %></td>
                    <td><input type="radio" name="choice" value="<%# Eval("Choice3") %>" /><%# Eval("Choice3") %></td>
                    <td><input type="radio" name="choice" value="<%# Eval("Choice4") %>" /><%# Eval("Choice4") %></td>
                </tr>
            </ItemTemplate>
            <EmptyDataTemplate>
             No data
             </EmptyDataTemplate>
        </asp:ListView>
    </tbody>
</table>


    <asp:DataPager ID="lvDataPager1" runat="server" PagedControlID="lvQuestion" PageSize="1">
        <Fields>
            <asp:NumericPagerField ButtonType="Link" />
        </Fields>
    </asp:DataPager>

我已成功显示问题及其选择(使用HTML5单选按钮)。但是,当用户从问题#1导航到问题#2时,问题#1中的所选答案将被DataPager丢失。我需要保存选定的答案,以便使用单个提交按钮收集所有答案。

1 个答案:

答案 0 :(得分:1)

您可以runat='server'使用id来控制

<input type="radio" name="choice" value="<%# Eval("Choice1") %>" id="rdCh1" runat="server" />

<input type="radio" name="choice" value="<%# Eval("Choice1") %>" id="rdCh2" runat="server" />

<input type="radio" name="choice" value="<%# Eval("Choice1") %>" id="rdCh3" runat="server" />
代码背后的

您可以通过

获取这些值
string selvalues=rdCh1.Value.ToString();

你必须在ListView中查找单选按钮在ItemDataBound

上有类似的内容
protected void ListView_ItemDataBound(object sender, ListViewItemEventArgs e)
    {

        if (e.Item.ItemType == ListViewItemType.DataItem)
        {
System.Web.UI.HtmlControls.HtmlInputRadioButton =
            (System.Web.UI.HtmlControls.HtmlInputRadioButton)e.Item.FindControl("rdCh1");



}