如何在下一个上一个按钮的listview中保存值?

时间:2013-01-15 07:44:20

标签: asp.net vb.net listview

我正在开发一个使用ListView来显示问题的应用程序,以及来自DataBase的不同表格的选项。
我在PageSize="1"中指定了DataPager,因此在选择用户点击下一个按钮后显示另一个问题,但是如果用户点击上一个按钮{{1} }未显示上一个选定的选项? 我不知道如何保留之前选择的选项,因为我必须在ListView中提交它们。

2 个答案:

答案 0 :(得分:0)

要保留此类场景中的值,请使用Session对象。您可以创建一个值集合 - 问题ID,答案ID等,并将其存储在会话中(HashTable是不错的选项)。当用户返回时,从Session中获取该Question Id的值。每当用户移动到下一个问题时刷新Session对象。但请记住处理情况 - 用户向后移动然后再移动,问题ID已经在收集中。

答案 1 :(得分:0)

您可以在Hashtable的{​​{1}}中保留控件的值。下面是一个示例页面,它为Session中的每个项目呈现2个TextBox控件和CheckBox。在分页事件之间保留状态。

ListView页面:

WebForm1.aspx

文件背后的代码 - <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication13.WebForm1" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> <div> <asp:ListView runat="server" ID="listView" EnableViewState="true" OnItemDataBound="listView_ItemDataBound" ClientIDMode="Inherit"> <ItemTemplate> <div class="Product"> <strong> <asp:TextBox runat="server" ID="TextBoxId" OnTextChanged="TextBox_TextChanged"></asp:TextBox> :: <asp:TextBox runat="server" ID="TextBoxName" OnTextChanged="TextBox_TextChanged"></asp:TextBox> </strong> <br /> <asp:CheckBox runat="server" ID="CheckBoxChecked" AutoPostBack="true" OnCheckedChanged="CheckBoxChecked_CheckedChanged" /> </div> </ItemTemplate> <LayoutTemplate> <asp:PlaceHolder runat="server" ID="itemPlaceholder"></asp:PlaceHolder> </LayoutTemplate> <ItemSeparatorTemplate> <hr /> </ItemSeparatorTemplate> </asp:ListView> <asp:DataPager ID="DataPagerProducts" runat="server" PagedControlID="listView" PageSize="1" OnPreRender="DataPagerProducts_PreRender"> <Fields> <asp:NextPreviousPagerField ShowFirstPageButton="True" ShowNextPageButton="False" /> <asp:NumericPagerField /> <asp:NextPreviousPagerField ShowLastPageButton="True" ShowPreviousPageButton="False" /> </Fields> </asp:DataPager> </div> </form> </body> </html>

WebForm1.aspx.cs