在asp.net页面上工作我创建了一个自定义ajax Web用户控件,它显示列表值的内容(通过数据库调用加载)。该控件包括“下一个”和“上一个”按钮,以及几个文本框。我的初始版本使用会话变量(迭代器)来跟踪用户在单击按钮和使用List []中的值填充文本框时的位置。
在我的下一次迭代中,我需要能够使用这个自定义控件,它将在表格中多次出现(或者更可能是网格),但是我无法弄清楚如何处理迭代器,因为会话变量显然不再有效。
有没有人有建议的方法或推荐的文章?
答案 0 :(得分:0)
我通过在我的用户控件上创建第二个表单来解决问题,该表单与UpdatePanel中包含的控件隔离。在刷新这些控件之前,隔离控件(在这种情况下为标签)以编程方式分配一个值,当控件Page_Load事件触发时,它引用隔离的标签值以跟踪它的当前位置。我还必须将ScriptManager移出我的控件并将其放在控件将被使用的页面上,因为页面上将有几个自定义用户控件,每页只允许一个ScriptManager。 / p>
<form id="NaviControl" >
<asp:UpdatePanel runat="server">
<ContentTemplate>
<asp:Panel ID="controlsPanel" runat="server" HorizontalAlign="Center" >
<asp:Panel ID="Panel1" runat="server" >
<asp:Button ID="btnLast" runat="server" Text="Previous" Height="25px" Width="75px" OnClick="btnLast_Click" />
<asp:TextBox ID="tbStatusCode" runat="server" ></asp:TextBox>
</asp:Panel>
<asp:Panel ID="Panel2" runat="server" HorizontalAlign="Center" >
<asp:TextBox ID="tbDescription" runat="server" ></asp:TextBox>
<asp:Button ID="btnNext" runat="server" Text="Next" Height="25px" Width="75px" OnClick="btnNext_Click" />
</asp:Panel>
</asp:Panel>
</ContentTemplate>
</asp:UpdatePanel>
</form>
<form>
<asp:Label ID="lblCounter" runat="server" visible="false" />
</form>
希望其他一些小组认为这种方法很有用。