1

我将不胜感激你们都可以给我的任何帮助和或建议。我不确定我是否以正确的方式进行此操作,但这是我的要求:

我有一个 asp:gridview,它可能在每行的列字段中进行大量测试。不会对 gridview 中的数据进行任何编辑。

我试图只显示文本的前 130 个字符,并在文本末尾带有“.... [更多]”。当用户点击【更多】时,<div>滚动打开并隐藏短行文本,显示全部文本,【更多】文本变为【更少】。当您单击 [Less] 时,<div>关闭并且文本变回 [More]。我有短版和长版的文本加载到模板字段中。

问题:我需要在 jQuery 函数 slideDown() 完成后隐藏<asp:Label class="faq_submain">和 ,并在 <span class="MemoDataMoreBtn">slideUp() 完成时显示()它们。如果 Eval("MemoText") 长度小于或等于零,我还需要隐藏 [More] 链接。

下面是gridview的代码<itemtemplate>

<ItemTemplate>
    <table cellpadding="0" cellspacing="0" class="GridMemo" width="100%">
        <tr>
            <td colspan="3" style="border-bottom: 1px solid #9DC2FF;">
                <asp:Label class="faq_submain" ID="ShortMemoTextLbl" runat="server" Text='<%# LimitTextLine(Eval("MemoText"), 130)%>'></asp:Label>
                <span class="MemoDataMoreBtn">[More]</span>
                <div class="memodatadiv" style="display: none;">
                    <asp:Label ID="LongMemoTextLbl" runat="server" Text='<%# Eval("MemoText")%>'></asp:Label>
                    <span class="MemoDataLessBtn">[Less]</span>
                </div>
            </td>
        </tr>
    </table>
</ItemTemplate>

这是我目前正在使用的 jquery。

$(".MemoDataMoreBtn").click(function () {
    $(this).next(".memodatadiv").slideDown(100);
    $(this).prev(".faq_submain").hide();
});
$(".MemoDataLessBtn").click(function () {
    $(this).parent(".memodatadiv").slideUp(100);
    $(this).parent("td").after(".faq_submain").show();
});

这是正常的外观:

普通的

问题#1,我点击[更多],需要隐藏突出显示的[更多]。 问题 #1

问题 #2,点击 [Less] 后,我需要显示原始文本和 [More] 链接。 问题 #2

谢谢大家的帮助。

4

0 回答 0