嵌套 ASP.NET ListView + Jquery .show() .hide() 持久化
我有这样的东西:
<div>
<asp:ListView>
<div>
<asp:ListView>
<div>
<asp:ListView>
</asp:ListView>
</div>
</asp:ListView>
<div>
</asp:ListView>
</div>
当然上面只是伪代码,但基本上就是这样。 3 级 DataBound ListView(每个都连接到一个 SqlDataSource)。 我的所有 ListView 都充分利用了控件的内置功能,这意味着选择/插入/更新/删除都通过 SqlDataSource
在 .aspx (ItemCommand
) 上进行代码>.我没有任何隐藏代码。
我想做的是使用 JQuery 将这个分层 ListView 变成类似 TreeView 的东西。我的第一步是 .show()
/.hide()
子 ListView,但正如预期的那样,当发生 PostBack 时,.show()
code>/.hide()
状态不会持续存在。
我打算尝试使用
在 OnItemCommand
期间从 ListViews 中设置,以便在 document.ready 期间由 JQuery 使用,但我认为它会是一个 .FindControl()
地狱。
您心中有一个优雅的解决方案吗?
I have something like this:
<div>
<asp:ListView>
<div>
<asp:ListView>
<div>
<asp:ListView>
</asp:ListView>
</div>
</asp:ListView>
<div>
</asp:ListView>
</div>
Of course the above is just pseudo-code, but basically it's like that. 3-Levels of DataBound ListViews (each connected to an SqlDataSource). All my ListViews fully utilize the control's built-in functionalities, meaning Select/Insert/Update/Delete are all on .aspx (ItemCommand
) through the SqlDataSource
. I do not have any Code-behind.
What I'm trying to do is make this layered ListView into something like a TreeView using JQuery. My first step is to .show()
/.hide()
the child ListViews but as expected, when a PostBack happens, the .show()
/.hide()
states don't persist.
I'm about to attempt using <asp:HiddenField>
to be set during OnItemCommand
from the ListViews to be used by JQuery during document.ready, but I think it will be a .FindControl()
Hell.
Do you have an elegant solution in mind?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如何使用服务器隐藏输入,该输入将在回发后保留状态,然后有一个初始化脚本,该脚本将在发生回发后重新分配可见性。这是一些传达这个想法的代码(未经测试)。如果您不喜欢所有隐藏输入,您可以使用一个并将数据打包到某个字符串中并将其解析出来,但这比下面的解决方案需要更多工作。
How about using server hidden inputs which will persist state over post backs and then have an initialization script that will re-assign visibility after a post back occurs. Here is some code that conveys the idea (untested). If you don't like all of the hidden inputs you could us one and pack the data in some string and parse it out, but this is more work than the solution below.