我的 asp.net 网站项目使用 c# 代码,我有一个表,我在其中以编程方式生成行。其中一些行具有展开按钮以显示更多信息。现在,我捕获了由按钮引起的回发,解析导致回发的按钮的名称并重新生成我的所有行,为适当的行添加一个标签,其中包含需要扩展的信息。
我想知道是否有更好的方法来实现不需要我重新生成所有行的展开/折叠机制。我尝试在表格中搜索要添加信息的行,但由于这些行是以编程方式生成的,因此在按钮导致的每次回发时表格都是空的。
您可以有一个列表变量来保存您为表生成的行实例。在回发时,您不是生成,而是迭代您的列表并将它们添加到表中。同时,您可以检查每一行是否是您需要添加信息的行。
最好在客户端上进行扩展,在按钮上单击获取服务器以获取内容,或者您可以呈现扩展所需的所有 html 但具有隐藏样式,然后在单击按钮时使用 javascript 更改样式。
方法 1 - Ajax 调用和替换内容 - http://weblogs.asp.net/karan/archive/2010/09/12/calling-server-side-method-using-jquery-ajax.aspx
方法 2 - 使用 jQuery 轻松完成:
<asp:Panel ID="showHidePanel" runat="server" style="display:none;">
Additional content
</asp:Panel>
<input type="button" onclick="$('#<%=showHidePanel.ClientID %>').show(); return false;" value="Show" />