О всплывающем окне в ASP.Net - PullRequest
8 голосов
/ 09 августа 2011

У меня есть gridview, который содержит details button в качестве последнего столбца.

Мой aspx:

<asp:GridView Width="100%" ID="gv_NotApplied" CssClass="datatable" AllowSorting="True"
    runat="server" TabIndex="2" AutoGenerateColumns="False" AllowPaging="True" GridLines="None">
    <Columns>
        <asp:TemplateField HeaderText="serial">
            <ItemTemplate>
                <asp:Label ID="lblSerial" runat="server"></asp:Label>

            </ItemTemplate>
        </asp:TemplateField>
        <asp:BoundField HeaderText="name" DataField="crs_name" />
        <asp:BoundField HeaderText="lecturer" DataField="name" />
        <asp:TemplateField HeaderText="details">
            <ItemTemplate>
                <asp:ImageButton ID="Ibtn_Details" runat="server" ImageUrl="~/Images/detail.png"
                    CommandArgument='<%#((GridViewRow)Container).RowIndex%>' CommandName="Detail"
                    CausesValidation="false" />
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
    <RowStyle VerticalAlign="Top" CssClass="row" />
</asp:GridView>

Я хотел бы сделать следующее:

  • Когда пользователь нажимает details button, откройте всплывающее окно (диалоговое окно) .

  • В этом окне я хотел бы добавить некоторые элементы управления сервером asp.net (например, в виде сетки). Поэтому я хочу, чтобы это окно включило / позволило мне получить доступ к этим элементам управления в коде позади.

Ответы [ 3 ]

3 голосов
/ 09 августа 2011

Для такого рода вещей мне нравится следующая конструкция:

<asp:UpdatePanel id="UpdatePanel1" runat="server">
  <ContentTemplate>
    <asp:Panel id="popup" visible="false" runat="server">
      popup Content
    </asp:Panel>

    <asp:AlwaysVisibleControlExtender ID="AlwaysVisibleControlExtender1" TargetControlID="popup" runat="server" />
    <asp:DragPanelExtender ID="DragPanelExtender1" TargetControlID="popup" runat="server" />
  </ContentTemplate>
 </asp:UpdatePanel>
  • Таким образом, вы можете установить popup.visible = true;, когда вам нужно всплывающее окно и иметь полный контроль над его содержимым.
  • Расширитель набора инструментов Updatepanel + Ajax Control придаст ему внешний вид независимого всплывающего окна.
3 голосов
/ 09 августа 2011

Я предлагаю открыть модальное всплывающее окно, например colorbox , и это поле цвета может указывать на отображение страницы aspx, содержащей все необходимые элементы управления. Поле цвета подскажет вам, как заставить вашу кнопку открывать модальное окно и как поместить в нее страницу.

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

Создайте всплывающее окно aspx и добавьте в кнопку событие javascript.Например:

<button onclick="window.open('_blank', 'www.google.co.il', 'width=100,height=100');">asdasd</button>

Вы можете поместить событие, используя код позади, а не прямо на aspx, чтобы дать разные URL для каждой кнопки.
Чтобы найти элементы управления на шаблоне элементачитайте здесь:

http://forums.asp.net/t/998368.aspx/1?Frustated+of+FindControl+FindControl+in+GridView+s+ItemTemplate

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