C# 启动一个文本框';s OnTextChanged while enabled=false
我有一个ajax工具包日历扩展器连接到我的文本框,我试图在文本框中输入日期后触发ContextChanged 问题是我不希望用户手动输入数据,所以我禁用了文本框,但对于禁用的文本框,事件不会触发 它周围有什么东西吗?我曾考虑更改为标签,但它没有ContextChanged事件 谢谢C# 启动一个文本框';s OnTextChanged while enabled=false,c#,asp.net,C#,Asp.net,我有一个ajax工具包日历扩展器连接到我的文本框,我试图在文本框中输入日期后触发ContextChanged 问题是我不希望用户手动输入数据,所以我禁用了文本框,但对于禁用的文本框,事件不会触发 它周围有什么东西吗?我曾考虑更改为标签,但它没有ContextChanged事件 谢谢 <asp:TableCell CssClass="cssWidth" Width="150px"> <asp:CalendarExtender ID="CalendarExt
<asp:TableCell CssClass="cssWidth" Width="150px">
<asp:CalendarExtender ID="CalendarExtender1" PopupButtonID="Image1" runat="server" TargetControlID="TextBoxAddDate" Format="dd/MM/yyyy"></asp:CalendarExtender>
<asp:TextBox ID="TextBoxAddDate" ReadOnly="true" CssClass="cssWidth" ToolTip="תאריך הוספה" runat="server" Style="font-size: large;background-color:aliceblue;" AutoPostBack="true" AutoCompleteType="Search" MaxLength="0" TextMode="SingleLine" OnTextChanged="txtSearch_TextChanged" ViewStateMode="Enabled" autocomplete="off" >
</asp:TextBox> 
<asp:ImageButton runat="Server" ID="Image1"
ImageUrl="~/Calendar_scheduleHS.png" AlternateText="Click to show calendar" /><br />
</asp:TableCell>
 
是否可以使用ReadOnly而不是Enabled=false
更新:
好的,这是对我有效的完整解决方案:
<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true"
CodeBehind="Default.aspx.cs" Inherits="WebApplication1._Default" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>
<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">
<script type="text/javascript">
function dateSelectionChanged(x) {
debugger;
javascript: __doPostBack('TextBoxAddDate', '')
}
</script>
</asp:Content>
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
<h2>
Welcome to ASP.NET!
</h2>
<p>
To learn more about ASP.NET visit <a href="http://www.asp.net" title="ASP.NET Website">www.asp.net</a>.
</p>
<p>
You can also find <a href="http://go.microsoft.com/fwlink/?LinkID=152368&clcid=0x409"
title="MSDN ASP.NET Docs">documentation on ASP.NET at MSDN</a>.
</p>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:CalendarExtender ID="CalendarExtender1" PopupButtonID="Image1" runat="server" TargetControlID="TextBoxAddDate" Format="dd/MM/yyyy" OnClientDateSelectionChanged="dateSelectionChanged" ></asp:CalendarExtender>
<asp:TextBox ID="TextBoxAddDate" CssClass="cssWidth" ToolTip="תאריך הוספה" runat="server" Style="font-size: large;background-color:aliceblue;" AutoCompleteType="Search" MaxLength="0" TextMode="SingleLine" OnTextChanged="txtSearch_TextChanged" ViewStateMode="Enabled">
</asp:TextBox> 
<asp:ImageButton runat="Server" ID="Image1"
ImageUrl="~/Calendar_scheduleHS.png" AlternateText="Click to show calendar" /><br />
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>
.
你也可以找到。
 
似乎,CalendarExtender
“窃取”了它使用的texbox中的事件。
使用这种方法,我成功地触发了
OnTextChanged
事件,处理程序txtSearch\u TextChanged
被执行。您是否将文本框设置为只读?是没有问题,但当ReadOnly=true时事件没有被触发您是否打开了文本框的自动回发功能?检查此解决方案我提出了是的,我提出了。当我调试代码并添加日期时,页面将转到页面加载,而不是事件函数