PopupControlExtender は、多くの ASP.NET コントロールをポップアップできますが、パネルをポップアップする例だけがインターネット上にあります... gridview などの他のコントロールをポップアップするにはどうすればよいですか?
たとえば、MachineNo でデータベースから DataTable を取得し、DataTable を GridView2 のデータソースとして設定します。次に、マウスがイメージボタンの上にあるときにそのマシンの情報を表示する GridView2 をポップアップします。コードビハインドの書き方は?
<asp:GridView ID="GridView1" ...onrowcreated="GridView1_RowCreated">
<Columns>
<asp:BoundField HeaderText="MachineNo" DataField="MachineNo"/>
<asp:TemplateField>
<ItemTemplate>
<asp:ImageButton ID="ImageButton1" .../>
<cc1:PopupControlExtender ID="PopupControlExtender1" runat="server"
PopupControlID="GridView2"
TargetControlID="ImageButtonl"
DynamicContextKey='<%# Eval("MachineNo") %>'
DynamicControlID="GridView2"
DynamicServiceMethod="GetDynamicContent" ???>
</cc1:PopupControlExtender>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:GridView ID="GridView2" ...>...
protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e){
if (e.Row.RowType == DataControlRowType.DataRow)
{
PopupControlExtender PopupControlExtender1 = (PopupControlExtender)e.Row.FindControl("PopupControlExtender1");
string behaviorID = "PopupControlExtender1_" + e.Row.RowIndex;
PopupControlExtender1.BehaviorID = behaviorID;
ImageButton ImageButton1 = (ImageButton)e.Row.FindControl("ImageButton1");
string OnMouseOverScript = string.Format("$find('{0}').showPopup();", behaviorID);
string OnMouseOutScript = string.Format("$find('{0}').hidePopup();", behaviorID);
ImageButton1.Attributes.Add("onmouseover", OnMouseOverScript);
ImageButton1.Attributes.Add("onmouseout", OnMouseOutScript);
}}