Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 文本框应仅接受日期_Asp.net_Sql_Vb.net_Sql Server 2008 - Fatal编程技术网

Asp.net 文本框应仅接受日期

Asp.net 文本框应仅接受日期,asp.net,sql,vb.net,sql-server-2008,Asp.net,Sql,Vb.net,Sql Server 2008,我有一个web表单,其中有几个date字段,我使用Ajaxcalendar让用户输入日期,我想限制用户输入日期以外的额外信息,甚至不能在文本框中键入除了calendar extender的值以外的任何内容。我正在使用ASP.NET、VB.NET和SQLServer2008数据库 我的日期格式是dd-MMM-yy 我试过: Enable = false 但它并没有将日期保存到数据库中 下面是我的代码示例: <asp:TextBox ID="TextBox5" runat="server"

我有一个web表单,其中有几个
date
字段,我使用
Ajax
calendar让用户输入日期,我想限制用户输入日期以外的额外信息,甚至不能在文本框中键入除了calendar extender的值以外的任何内容。我正在使用ASP.NET、VB.NET和SQLServer2008数据库

我的日期格式是
dd-MMM-yy

我试过:

Enable = false 
但它并没有将日期保存到数据库中

下面是我的代码示例:

<asp:TextBox ID="TextBox5" runat="server" Width="150px" style="margin-top: 0px" 
                            ReadOnly="False" CausesValidation="True"></asp:TextBox>

<asp:CalendarExtender ID="TextBox5_CalendarExtender" runat="server" Format="dd-MMM-yy" PopupButtonID="ImageButton1" TargetControlID="TextBox5">
</asp:CalendarExtender>

谢谢你的帮助


谢谢

不要设置
ReadOnly=True
Enabled=False
,这样会阻止值被发回。您只需要防止用户交互,而允许值可更新,否则。一种方法是防止字段获得焦点,请尝试添加此属性:

onfocus = "this.blur();"

有关更多信息,请查看。

首先,您需要在代码隐藏中将文本框设置为“只读”,通常在页面加载事件中,如下所示:

TxtDate.Attributes.Add("readonly","readonly");
接下来,在标记中将文本框的设计修改为如下所示:

   <asp:TextBox ID="TxtDate" runat="server" Width="150px"></asp:TextBox>

    <a href="JavaScript:clearText('<%=TxtDate.ClientID %>')">
    <img alt="" src="../clear.png"></img></a>
    <asp:CalendarExtender ID="CalendarExtender1" runat="server" Enabled="True" 
    Format="dd-MMM-yy" PopupPosition="Right" TargetControlID="TxtDate">      
</asp:CalendarExtender>

最后添加以下小脚本以清除日期:

   <script type="text/javascript">
        function clearText(ctrl) {
            document.getElementById(ctrl).value = "";
        };

函数明文(ctrl){
document.getElementById(ctrl).value=“”;
};

这样做,当您单击文本框时,它将弹出日历,不允许用户输入,当用户单击与文本框关联的“清除”图像时,它将清除文本。

设置只读属性不会导致服务器端进程。我们可以使用contentEditable=“false”它将在服务器端可用

您希望在客户端或服务器上验证它吗?如果是在客户机上,这是您应该做的,那么您需要编写一些JavaScript来验证控件。有几个例子说明了如何做到这一点。我不确定我是否理解你在试图做什么。您是否希望将正确的值保存到数据库中?或者你想实现一个输入掩码,这样用户只能输入日期,这只允许用户只输入整数并自动添加斜杠(/)?我想看看用户是否只能通过ajax日历输入日期,而不能在文本框中键入任何我想在服务器上验证的内容Yuriy是否正确,ReadOnly防止发回,并且“this.blur()”经常混淆cal弹出窗口。最适合我的是添加一个asp:CompareValidator集。他们可以输入文本框,但必须是有效的日期。6年后:很好的解决方案,但会导致日期选择器被视为一个对话框。在日期选择器被解雇之前,无法在页面上执行任何操作。