Stupid I didn't saw it earlier. You are saying that your panel is not visible, the modalpopupextender doesn't set your panel to visible, only setting it to "display: block" try the following example instead
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.c
s" Inherits="WebApplication1.
_Default" %>
<%@ Register Assembly="AjaxControlToolk
it" Namespace="AjaxControlTool
kit" TagPrefix="ajax" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="
http://www.w3.org/1999/xhtml"
>
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<div>
<asp:UpdatePanel ID="upSend" runat="server">
<ContentTemplate>
<asp:Button ID="btnSend" runat="server" text="Button" OnClick="btnSend_Click" />
</ContentTemplate>
</asp:UpdatePanel>
<asp:Panel ID="pnlShow" runat="server" style="display: none">
<h1>hello world</h1>
</asp:Panel>
<asp:HiddenField ID="hd_dyn" runat="server" />
<ajax:ModalPopupExtender ID="mdlhelloWorld" TargetControlID="hd_dyn" PopupControlID="pnlShow" runat="server" />
</div>
</form>
</body>
</html>
protected void btnSend_Click(object sender, EventArgs e)
{
mdlhelloWorld.Show();
}
as you can see, i've added " style="display: none" " to the panel.