Как использовать PopupControlExtender для всплывающего элемента управления ASP.NET, кроме PANEL?
PopupControlExtender может вызывать множество элементов управления ASP.NET, но в Интернете можно найти только примеры всплывающих панелей... Как открыть другие элементы управления, такие как gridview?
Например, я собираюсь получить DataTable из базы данных по MachineNo и установить 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);
}}
0 ответов
Я только что прочитал ваш код. и со своей стороны я получаю успех за показ всплывающих окон, как этот путь
protected void gvTemplates_RowCreated(object sender, GridViewRowEventArgs e)
{
//GridView gv1 = (GridView)sender;
//foreach (GridViewRow item in gv1.Rows)
//{
if (e.Row.RowType == DataControlRowType.DataRow)
{
PopupControlExtender pce = e.Row.FindControl("PopupControlExtender1") as PopupControlExtender;
string behaviorID = "pce_" + e.Row.RowIndex;
pce.BehaviorID = behaviorID;
Panel pnl = (Panel)e.Row.FindControl("Panel2");
string OnMouseOverScript = string.Format("$find('{0}').showPopup();", behaviorID);
string OnMouseOutScript = string.Format("$find('{0}').hidePopup();", behaviorID);
pnl.Attributes.Add("onmouseover", OnMouseOverScript);
pnl.Attributes.Add("onmouseout", OnMouseOutScript);
}
//}
}
[System.Web.Services.WebMethodAttribute(), System.Web.Script.Services.ScriptMethodAttribute()]
public static string GetDynamicContent(string contextKey)
{
StringBuilder b = new StringBuilder();
b.Append("<table style='background-color:#f3f3f3; border: #4DB3A4 2px solid; ");
b.Append("width:100px;height:100px; font-size:8pt; font-family:'lucida grande', tahoma, verdana, arial, sans-serif;' cellspacing='0' cellpadding='3'>");
b.Append("<tr><td colspan='3' style='background-color:white;'>");
b.Append(contextKey);
b.Append("</td></tr>");
b.Append("</table>");
return b.ToString();
}