读书人

rangeVal的MaximumValue属性的值无法转

发布时间: 2012-10-16 09:57:37 作者: rapoo

【求助】rangeVal的MaximumValue属性的值无法转换为类型Integer
我在使用RangeValidator控件的时候出现rangeVal的MaximumValue属性的值无法转换为类型Integer的错误,有没有大侠知道问题出在哪里?由于刚学asp.net,很多东西都不太懂

代码如下:
===============================================
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<%@Page clienttarget=downlevel %>
<html xmlns="http://www.w3.org/1999/xhtml" >
<center>
<head>
<title>RangeValidator控件演示</title>
<!-- 用于判断要验证的值是否在两个值范围之内 -->
<script language="C#" runat="server">
void Button1_Click(Object sender, EventArgs e)
{
if (Page.IsValid)
{
lblOutput.Text="结果正确!";
}
else
{
lblOutput.Text="结果不正确!";
}
}
void lstOperator_SelectedIndexChanged(Object sender,EventArgs e)
{
rangeVal.Type=(ValidationDataType)lstType.SelectedIndex;
rangeVal.Validate();
}
</script>
</head>
<body>
<h3><font face="Verdana">RangeValidator控件演示</font></h3>
<p></p>
<form runat="Server">
<table bgcolor="#eeeeee" cellpadding=10>
<tr valign="top">
<td>
<h5><font face="Verdana">请输入要验证的值:</font></h5>
<asp:TextBox Selected id="txtComp" runat="server" />
</td>
<td>
<h5><font face="Verdana">数据类型:</font></h5>
<asp:DropDownList id="lstType"
OnSelectedIndexChanged="lstOperator_SelectedIndexChanged" runat="server">
<asp:ListItem Selected Value="String">String</asp:ListItem>
<asp:ListItem Value="integer">Integer</asp:ListItem>
</asp:DropDownList>
</td>
<td>
<h5><font face="Verdana">最小值:</font></h5>
<asp:TextBox id="txtMin" runat="server" />
</td>
<td>
<h5><font face="Verdana">最大值:</font></h5>
<asp:TextBox id="txtMax" runat="server" />
<asp:Button Text="验证" id="Button1" OnClick="Button1_Click" runat="server" />
</td>
</tr>
</table>
<asp:RangeValidator id="rangeVal" Type="String" ControlToValidate="txtComp"
MaximumControl="txtMax" MinimimControl="txtMin" runat="server" />
<br />
<asp:Label id="lblOutput" Font-Name="Verdana" Font-Size="10pt" runat="server" />
</form>
</body>
</center>
</html>
=================================

报错信息如下:

===================================================

“/”应用程序中的服务器错误。
--------------------------------------------

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

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

源错误:

只有在调试模式下进行编译时,生成此未处理异常的源代码才会显示出来。若要启用此功能,请执行以下步骤之一,然后请求 URL:

1. 在产生错误的文件的顶部添加一条“Debug=true”指令。例如:

<%@ Page Language="C#" Debug="true" %>

或:

2. 将以下的节添加到应用程序的配置文件中:

<configuration>
<system.web>


<compilation debug="true"/>
</system.web>
</configuration>

请注意,第二个步骤将使给定应用程序中的所有文件在调试模式下进行编译;第一个步骤仅使该特定文件在调试模式下进行编译。

重要事项: 以调试模式运行应用程序一定会产生内存/性能系统开销。在部署到生产方案之前,应确保应用程序调试已禁用。

堆栈跟踪:


[HttpException (0x80004005): “rangeVal”的“MaximumValue”属性的值“”无法转换为类型“Integer”。]
System.Web.UI.WebControls.RangeValidator.ValidateValues() +1078419
System.Web.UI.WebControls.RangeValidator.ControlPropertiesValid() +12
System.Web.UI.WebControls.BaseValidator.get_PropertiesValid() +21
System.Web.UI.WebControls.BaseValidator.Validate() +56
ASP._01web页面_rangevalidator_aspx.lstOperator_SelectedIndexChanged(Object sender, EventArgs e) +50
System.Web.UI.WebControls.ListControl.OnSelectedIndexChanged(EventArgs e) +111
System.Web.UI.WebControls.DropDownList.RaisePostDataChangedEvent() +134
System.Web.UI.WebControls.DropDownList.System.Web.UI.IPostBackDataHandler.RaisePostDataChangedEvent() +10
System.Web.UI.Page.RaiseChangedEvents() +165
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1485


=======================================================

希望大侠能帮忙看一下问题出现在什么地方,谢谢了。。。

[解决办法]
是不是那个 MaximumValue 超出了int的范围,你看看MaximumValue是多少
[解决办法]
RangeValidator 是验证你的txtComp输入值是否满足MaximumValue和MinimumValue范围的。

你要搞清楚RangeValidator 是怎么使用的,


<h5><font face="Verdana">最小值:</font></h5>
<asp:TextBox id="txtMin" runat="server" />
</td>
<td>
<h5><font face="Verdana">最大值:</font></h5>
<asp:TextBox id="txtMax" runat="server" />

这些代码是无用的

读书人网 >asp.net

热点推荐