最後の列としてdetails button
を含むgridview
があります。
私の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サーバーコントロール(グリッドビューなど)を配置したいと思います。したがって、このウィンドウで、コードビハインドのこれらのコントロールにアクセスできるようにします。
colorbox のようなモーダルポップアップウィンドウを開くことをお勧めします。このカラーボックスは、必要なすべてのコントロールを含むaspxページを表示するように指定できます。カラーボックスには、ボタンでモーダルウィンドウを開く方法と、ボタンにページを配置する方法が示されます。
この種のことのために、私は次の構成が大好きです:
<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
Toolkit Extenderは、独立したポップアップのルックアンドフィールを提供します。希望のaspxポップアップを作成し、ボタンにjavascriptイベントを追加します。例えば:
<button onclick="window.open('_blank', 'www.google.co.il', 'width=100,height=100');">asdasd</button>
ボタンごとに異なるURLを指定するために、aspxに直接ではなく、コードビハインドを使用してイベントを配置できます。
アイテムタンプレートのコントロールを見つけるには、ここを読んでください: