gpt4 book ai didi

c# - 折叠面板 JavaScript 问题

转载 作者:行者123 更新时间:2023-11-30 23:52:06 27 4
gpt4 key购买 nike

我有一个可折叠面板扩展器。我对扩展器没有任何问题。但是,我有一个打开面板的链接,我想要另一个链接说折叠以关闭它。我想隐藏一个显示一个javascript端。问题是它只适用于第一行,但不适用于其他行,因为我没有获得唯一的 ID 或其他东西。我还没有找到合法的答案。我尝试过通过获取父元素来使用jquery,但没有成功。我能做什么?

答案:

<asp:TemplateField HeaderText="Lng Descr" SortExpression="LongDescription">
<EditItemTemplate>
<asp:TextBox ID="TextBox3" runat="server" Text='<%# Bind("LongDescription") %>' TextMode ="MultiLine" Rows="5" ></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<table>
<tr id="expand" style="display:">
<td>
<asp:Label ID="Label3" runat="server" ForeColor="Blue"><u></u></asp:Label>
</td>
</tr>
</table>
<asp:Panel ID="Panel1" runat="server" >
<table>
<tr>
<td>
<%#Eval("LongDescription")%>
</td>
</tr>
</table>
</asp:Panel>
<ajaxToolkit:CollapsiblePanelExtender ID="cpe" runat="Server"
TargetControlID = "Panel1"
CollapsedSize="0"
ExpandedSize="50"
Collapsed="true"
ExpandControlID="Label3"
CollapseControlID="Label3"
AutoCollapse="false"
Scrollcontents="false"
collapsedText="<u>Expand"
ExpandDirection="Vertical"
ExpandedText = "<u>Collapse"
TextLabelID="Label3" />
</ItemTemplate>
</asp:TemplateField>

最佳答案

使用 jQuery 可以轻松完成此操作。在您的面板中,声明一个 cssclass,例如“panel”,并在标签上声明一个 css class,例如“toggle”。你的 jQuery 将是:

$(document).ready(function(){
$(".toggle").toggle(function (){
$(this).text("Collapse");
$(this).next(".panel").slideDown("fast");
},function () {
$(this).text("Expand");
$(this).next(".panel").slideUp("fast");
});
});

您也可以放弃 ajax 工具箱控件。当然,您还必须在 CSS 中将 .panel 声明为 display: none;。另请注意,您可能必须删除标签周围的表格才能有效地使用“下一个”功能。您还只需要一个可以来回更改其文本的标签:

 <asp:LinkButton ID="view" runat="server" text="Expand" cssclass="toggle"> 
<!-- You may alternatively use a standard link here or even a <p> tag, like this
<p class="toggle">Expand</p>
-->
<asp:Panel ID="Panel1" runat="server" cssclass="panel">
<table>
<tr>
<td>
<%#Eval("LongDescription")%>
</td>
</tr>
</table>
</asp:Panel>

编辑

这是我用来为您运行此程序的确切代码。请注意,我通常会将脚本和 CSS 取出并将它们放入单独的文件中,但出于所有意图和目的,这是可行的(如果您使用的是 1.3.2 jquery 文件):

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script type="text/javascript"
src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<style type="text/css">
.panel {
display: none;
}
</style>

<script type="text/javascript">
$(document).ready(function() {
$(".toggle").toggle(function() {
$(this).text("Collapse");
$(this).next(".panel").slideDown("fast");
}, function() {
$(this).text("Expand");
$(this).next(".panel").slideUp("fast");
});
});
</script>
</head>
<body>
<form id="form1" runat="server">
<p class="toggle" style="cursor:pointer;color:blue"><u>Expand</u></p>
<asp:Panel ID="Panel1" runat="server" CssClass="panel" >
<table>
<tr>
<td>
<p>some text</p>
</td>
</tr>
</table>
</asp:Panel>
</form>
</body>
</html>

关于c# - 折叠面板 JavaScript 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1213516/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com