Si configura las propiedades "habilitadas" del cuadro de texto en falso, no contendrá el foco o el evento de desenfoque.
Por lo tanto, necesita establecer un PopupButtonID para el extensor de calendario AJAX. Y usa el método javascript _DopostBack pars desencadenar evento TextBox TextChanged;
<div>
<asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server"></asp:ToolkitScriptManager>
<asp:TextBox ID="TextBox1" runat="server" Enabled="false" OnTextChanged="TextBox1_TextChanged"></asp:TextBox>
<asp:ImageButton ID="ImageButton1" runat="server" ImageUrl="~/Images/aaa.jpg" Width="20" Height="20" />
<asp:CalendarExtender ID="CalendarExtender1" runat="server" TargetControlID="TextBox1" PopupButtonID="ImageButton1" OnClientDateSelectionChanged="CheckTextChange"></asp:CalendarExtender>
<script>
function CheckTextChange()
{
__doPostBack('<%= TextBox1.ClientID %>', 'TextBox1')
}
</script>
</div>
En code behind
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack)
{
var str1 = Request["__EVENTTARGET"];
if (Request["__EVENTARGUMENT"] == "TextBox1") {
TextBox1_TextChanged(null,null);
}
}
}
protected void TextBox1_TextChanged(object sender, EventArgs e)
{
Response.Write("changed");
}