Как показать панель по нажатию кнопки ссылки, которая находится внутри Gridview - PullRequest
1 голос
/ 29 августа 2011

Я хочу показать панель по нажатию кнопки ссылки, которая находится внутри вида сетки, будь то с помощью JavaScript или кода позади.

Ответы [ 2 ]

1 голос
/ 29 августа 2011

Это должно работать для вас:

showPanel = function(this){
    var panel = document.getElementById("<%=pnlDetails.ClientID%>");
    if (panel){
        panel.style.display = "block";
    }
}

Поскольку вы ничего с этим не делаете, я не думаю, что вам также нужно передавать ссылку на LinkButton.

0 голосов
/ 29 августа 2011

Я буду считать, что Panel - это элемент управления ASP с именем Panel, <asp:panel ... one.

Не имеет значения, где находится ваш элемент управления (внутри или вне сетки), процедура всегдато же самое, вам нужно подключить событие click к показу / скрытию этой панели.

Работа с Обновление панелей (чтобы избежать полной обратной передачи только для загрузкичасть вашей страницы) в течение года я отказался от этого подхода, и сегодня я просто использую Показать / Скрыть div, например:

<asp:GridView ID="gv" runat="server" AutoGenerateColumns="false">
    <Columns>
        <asp:TemplateField>
            <ItemTemplate>
                <asp:LinkButton ID="lnk" runat="server" Text="Click to open" OnClientClick="showPanel(this);" />
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

<asp:Panel ID="pnlDetails" runat="server" CssClass="panel" style="display:none;">
    <h2>
        This is a title</h2>
    <p>
        This is the description</p>
</asp:Panel>

<script type="text/javascript">
    function ShowPanel(elm) {
        alert('you have clicked me');
    }
</script>

каждый раз, когда вы нажимаете на эту кнопку ссылки, она будет

<asp:panel преобразуется в простой <div>, так что его легко использовать, вы можете просто проверить, если <div> уже открыт, затем закрыть его, если он закрыт, открыть его.

используя jQuery для облегчения обработки и написания javascript, вы сделаете эту ShowPanel функцию такой:

<script type="text/javascript">
    var pnlId = '#<%= pnlDetails.ClientID %>';

    function ShowPanel(elm) {


        if ($(pnlId).is("visible"))
            $(pnlId).hide();
        else
            $(pnlId).show();
    }
</script>

вы можете использовать переменную elm (элемент), если выхочу различить строку кнопки ссылки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...