一个很奇怪的问题。。。。。高手帮忙呀。。在线等待啊!!先谢谢了。

gzhubonet 2003-09-29 11:49:32
我在用RangeValidator定了这样一断代码用于验证提交的日期是在起始日期和截止日期之间的。代码如下:

<%@ Page Language=VB Debug=true %>
<script runat=server>
Sub Page_Load(ByVal Sender as Object, ByVal E as EventArgs)

End Sub
Sub SubmitBtn_Click(Sender As Object, E As EventArgs)

End Sub
</SCRIPT>
<HTML>
<HEAD>
<TITLE>Checking the Range of a Date through the RangeValidator Control</TITLE>
</HEAD>
<form runat="server">
<BR><BR>
Enter a Date:<BR>
<asp:textbox
id="txtDate"
runat=server
/>
<asp:RangeValidator
id="rngDate"
ControlToValidate="txtDate"
type="Date"
minimumvalue="1/1/1990"
maximumvalue="12/31/1999"
display="Dynamic"
runat="server">
The Date field must be from 1/1/1990 to 12/31/1999!
</asp:RangeValidator>
<BR><BR>
<asp:button
id="butOK"
text="OK"
type="Submit"
onclick="SubmitBtn_Click"
runat="server"
/>
</form>
</BODY>
</HTML>
编译时报这样的错:
“rngDate”的“MaximumValue”属性的值“12/31/1999”无法转换为类型“Date”。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.Web.HttpException: “rngDate”的“MaximumValue”属性的值“12/31/1999”无法转换为类型“Date”。

源错误:

执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。

堆栈跟踪:


[HttpException (0x80004005): “rngDate”的“MaximumValue”属性的值“12/31/1999”无法转换为类型“Date”。]
System.Web.UI.WebControls.RangeValidator.ControlPropertiesValid() +301
System.Web.UI.WebControls.BaseValidator.Render(HtmlTextWriter writer) +85
System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +243
System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +72
System.Web.UI.HtmlControls.HtmlForm.RenderChildren(HtmlTextWriter writer) +44
System.Web.UI.HtmlControls.HtmlForm.Render(HtmlTextWriter output) +393
System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +243
System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +72
System.Web.UI.Control.Render(HtmlTextWriter writer) +7
System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +243
System.Web.UI.Page.ProcessRequestMain() +1900



...全文
45 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
gzhubonet 2003-10-02
  • 打赏
  • 举报
回复
吴大哥还是不行啊。
报的还是和上面一们啊。
--------------------------------------------------------------------------------

“Range1”的“MaximumValue”属性的值“”无法转换为类型“Date”。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.Web.HttpException: “Range1”的“MaximumValue”属性的值“”无法转换为类型“Date”。

源错误:

执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。

堆栈跟踪:


[HttpException (0x80004005): “Range1”的“MaximumValue”属性的值“”无法转换为类型“Date”。]
System.Web.UI.WebControls.RangeValidator.ControlPropertiesValid() +301
System.Web.UI.WebControls.BaseValidator.Render(HtmlTextWriter writer) +85
System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +243
System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +72
System.Web.UI.HtmlControls.HtmlForm.RenderChildren(HtmlTextWriter writer) +44
System.Web.UI.HtmlControls.HtmlForm.Render(HtmlTextWriter output) +393
System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +243
System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +72
System.Web.UI.Control.Render(HtmlTextWriter writer) +7
System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +243
System.Web.UI.Page.ProcessRequestMain() +1900
唉。。。不知道是不是我的系统的问题哦。


pengcheng 2003-10-02
  • 打赏
  • 举报
回复
关注。
sjc0 2003-10-02
  • 打赏
  • 举报
回复
你要动态加在控件才行,因为你的属性设计器中你的MinimumValueMaximumValue属性为空
feixiang1234 2003-10-02
  • 打赏
  • 举报
回复
用Convert进行强制转换为Date类型。
gzhubonet 2003-10-02
  • 打赏
  • 举报
回复
谢谢上面这几个兄弟了!特别是吴大哥,你真是个热心人!!结贴了。
zdy_8212 2003-10-02
  • 打赏
  • 举报
回复
问题解决了没?要不你试着改变你的系统日期格式,这算不得什么招式,可有时还可以帮得上一点小忙。。。
Nicholasqpl 2003-10-02
  • 打赏
  • 举报
回复
用Convert.ToDataTime(你的值)
webdiyer 2003-10-02
  • 打赏
  • 举报
回复
这是在我的机器上经过测试完全可以正常运行的代码:

<%@ Page Language="C#"%>
<%@ Import Namespace="System.Data"%>
<script runat="server">
void Page_Load(Object src, EventArgs e){
Range1.MinimumValue=DateTime.Parse("2000-1-1").ToString("yyyy/MM/dd");
Range1.MaximumValue=DateTime.Parse("2003-9-9").ToString("yyyy/MM/dd");
}
</script>
<HTML><HEAD><TITLE>
Welcome to Webdiyer.com
</TITLE><meta http-equiv="Content-Language" content="zh-cn">
<meta http-equiv="content-type" content="text/html;charset=gb2312">
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="Haili(yhaili@21cn.com)">
</head><body>
<form runat="server">
<asp:TextBox runat="server" id="txtbox"/>
<asp:RangeValidator runat="server" ControlToValidate="txtbox" Type="Date" ErrorMessage="日期无效" id="Range1"/>
<asp:Button runat="server" id="btn" Text="Click"/>
</form></body></html>

---------
ToString("yyyy/MM/dd")或者ToString("yyyy-MM-dd")都正确。
gzhubonet 2003-10-01
  • 打赏
  • 举报
回复
不行啊。
还得有劳上面的两位大哥帮忙了。
思归大哥要我用CustomValidator 换是吗?
webdiyer 2003-10-01
  • 打赏
  • 举报
回复
怎么不行?有什么错误信息吗?你还可以这样试一下:
Range1.MinimumValue=DateTime.Parse(StartTime.Text).ToString("yyyy-MM-dd")
Range1.MaximumValue=DateTime.Parse(EndTime.Text).ToString("yyyy-MM-dd")
我前几天写过这样的一个示例,RangeValidator的MaximumValue和MinimumValue是完全可以动态指定的。
webdiyer 2003-09-30
  • 打赏
  • 举报
回复
try:

Range1.MinimumValue=DateTime.Parse(StartTime.Text).ToString("yyyy/MM/dd")
Range1.MaximumValue=DateTime.Parse(EndTime.Text).ToString("yyyy/MM/dd")
saucer 2003-09-30
  • 打赏
  • 举报
回复
write a CustomValidator instead
gzhubonet 2003-09-30
  • 打赏
  • 举报
回复
谢谢思归大哥了。我昨天用你方法解决了上面的这个问题。本想马上感谢你的但是我的机子中病毒了。只好今天对您说声谢谢了。

但是我还有一点不明白的地方要是我要写下面这样的代码的话我该怎么办呢。
<%@ Import Namespace="System"%>
<Script Language="vb" Runat="server">
Sub Button1_Click(Sender As Object,E As EventArgs)
Range1.MinimumValue=StartTime.Text
Range1.MaximumValue=EndTime.Text
Range1.Validate()

If Page.IsValid Then
'通过验证后的代码
End If
End Sub
</Script>
<Html><head><Title>使用RangeValidator控件</Title></head>
<Body BackGround="bg.gif">

<Form Runat="server">

起始时间: <asp:textbox id="StartTime" runat="server" />
<p>
截止时间: <asp:textbox id="EndTime" runat="server" />
<p>

提交时间: <asp:textbox id="MidTime" runat="server" />
<p>
<asp:RangeValidator id="Range1" runat="server"
ControlToValidate="MidTime" type="date">
'提交时间必须在起始时间和截止时间之间!
</asp:rangeValidator><p>

<asp:Button id="Button1" runat="server" Text="输入" OnClick="Button1_Click" />


</Form>

</Body>
</Html>
saucer 2003-09-29
  • 打赏
  • 举报
回复

that is weird, it works fine on my machine (.NET 1.1)


try

minimumvalue="1999-01-01"
maximumvalue="1999-12-31"

or change date format in the Regional Settings

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧