jQuery代码可在嵌套Gridview中全部展开

时间:2019-04-16 05:42:25

标签: javascript c# jquery asp.net

我有一个有效的JavaScript函数,可以在单击相应按钮时从父gridview单独展开/折叠动态生成的嵌套gridview。我想添加其他功能,以在单击单独的按钮时展开/折叠所有嵌套的gridview。我尝试的方法是使用jquery遍历展开/折叠按钮的所有实例,然后单击它们。但是,通过我的实现,只有最终的gridview会得到扩展。

这是执行以扩展/折叠单个嵌套子代的函数,实际上是在我的jquery尝试中通过“单击”调用的:

function expandcollapse(obj, row) {
        var div = document.getElementById(obj);
        var img = document.getElementById('img' + obj);
        if (div.style.display == "none") {
            div.style.display = "block";
            if (row == 'alt') {
                img.src = "minus.gif";
            }
            else {
                img.src = "minus.gif";
            }
            img.alt = "Close to view other Workflows";
        }
        else {
            div.style.display = "none";
            if (row == 'alt') {
                img.src = "plus.gif";
            }
            else {
                img.src = "plus.gif";
            }
            img.alt = "Expand to show Tasks";
        }
    }

这是我要扩展/折叠的jQuery的全部内容:

function expandAll() {
    $('img[id^="imgdiv"]').each(function(i, obj) {
        $(this).trigger('click');
    });
}

最后是我要扩展的ASP.NET代码:

...
<asp:TemplateField HeaderText="<img src='plusbutton.png' onclick='expandAll();'>" >
<ItemTemplate>
    <a href="javascript:expandcollapse('div<%# Eval("WorkflowID") %>', 'one');">
        <img id="imgdiv<%# Eval("WorkflowID") %>" alt="Click to show/hide Tasks for Workflow <%# Eval("WorkflowID") %>" width="9" border="0" src="plus.gif" />
    </a>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
    <asp:LinkButton ID="lbEdit" CommandArgument='<%# Eval("WorkflowID") %>' CommandName="EditRow" ForeColor="#8C4510" runat="server">Edit</asp:LinkButton>| 
    <asp:LinkButton ID="lbDelete" OnClientClick="return confirm('Are you sure you want to delete this row?');" CommandArgument='<%# Eval("WorkflowID") %>' CommandName="DeleteRow" ForeColor="#8C4510" runat="server" CausesValidation="false">Delete</asp:LinkButton>
</ItemTemplate>
<EditItemTemplate>
    <asp:LinkButton ID="lbUpdate" CommandArgument='<%# Eval("WorkflowID") %>' CommandName="UpdateRow" ForeColor="#8C4510" runat="server">Update</asp:LinkButton>
    <asp:LinkButton ID="lbCancel" CommandArgument='<%# Eval("WorkflowID") %>' CommandName="CancelUpdate" ForeColor="#8C4510" runat="server" CausesValidation="false">Cancel</asp:LinkButton>
</EditItemTemplate>
<FooterTemplate>
    <asp:LinkButton ID="lbInsert" ValidationGroup="Insert"
        runat="server" ForeColor="#8C4510" CommandName="InsertRow">Insert
    </asp:LinkButton>
</FooterTemplate>
</asp:TemplateField>
...

在单击调用jquery函数的按钮时,所有嵌套的gridview都应展开/折叠。我目前所拥有的仅对最后一个嵌套的gridview起作用。

0 个答案:

没有答案