我正在使用带有框架 3.5 和 Ajax Control Toolkit .NET 3.5 的 Visual Studio 2010。
我在一个 asp.net 网络表单网站上工作。
在一个表单上我有这个:一个文本框、一个图像按钮、一个按钮、一个日历和一个 requiredfieldvalidator:
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<p>
<br />
<asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">
</asp:ToolkitScriptManager>
<asp:Label id="Label3" runat="server">Date</asp:Label>
<asp:textbox id="txtInitialDate" runat="server" Width="75px" MaxLength="10"></asp:textbox>
<asp:ImageButton ID="imgBegin"
ImageUrl="~/images/Icon1.jpeg" runat="server"
AlternateText="" Height="24px" Width="24px" />
<asp:CalendarExtender ID="CalendarExtender1" runat="server"
TargetControlID="txtInitialDate"
PopupPosition="BottomLeft" PopupButtonID="imgBegin"
>
</asp:CalendarExtender>
<asp:requiredfieldvalidator id="RequiredFieldValidator1" runat="server" ErrorMessage="*" ControlToValidate="txtInitialDate"
Display="Dynamic"></asp:requiredfieldvalidator>
<asp:button id="Button2" runat="server" Text="Send" onclick="Button2_Click"></asp:button>
</asp:Content>
后面的代码:
override protected void OnInit(EventArgs e)
{
Button2.Attributes.Add("onclick", "javascript:" + Button2.ClientID + ".disabled=true;" + "javascript:" + Button2.ClientID + ".value='Processing.';" + this.GetPostBackEventReference(Button2) + ";");
base.OnInit(e);
}
protected void Button2_Click(object sender, EventArgs e)
{
string a = "some_value";
}
这里的交互是用户点击ImageButton,日历显示,用户点击日期然后点击按钮。
问题:
如果我运行该网站并首先单击 ImageButton 并选择一个日期,则单击该按钮时不会触发任何事件。
但是,如果我评论验证器的代码:
<asp:requiredfieldvalidator id="RequiredFieldValidator1" runat="server" ErrorMessage="*" ControlToValidate="txtInitialDate"
Display="Dynamic"></asp:requiredfieldvalidator>
然后事件被正确触发。
我希望能够使用 requiredfieldvalidator,但我不希望它与按钮产生冲突
为什么会发生这种情况,我该如何解决?
谢谢...