日期:2014-05-18  浏览次数:20455 次

当文本框输入数字时正常,当不输入时候直接提交出现错误。
输入字符串的格式不正确。 
 前台如下:  
添加横幅广告:  
广告标题:  
图片地址:  
广告链接地址:  
广告是否显示: 
图片宽度: 文本框
图片高度: 文本框

失效日期:  



说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。  
   
   
   

 

异常详细信息: System.FormatException: 输入字符串的格式不正确。

源错误: 


行 106: model.LinkUrl=this.txtLinkUrl.Text;
行 107: model.Passed=check();
行 108: model.ImgWidth= Convert.ToInt32(this.txtImgWidth.Text);
行 109: model.ImgHeight=Convert.ToInt32(this.txtImageheight.Text);
行 110: //model.validate=Convert.ToDateTime(this.InputCalendar1.Text);
 

源文件: \advertisementadd.cs 行: 108 



------解决方案--------------------
try{
}catch(exception ex)
{}处理下,同时调用一下js判断输入是否为数字,在失去焦点的时候调用

//限制不允许输入除0~9之外的所有字符
function KeyPress(objTR)
{
var txtval=objTR.value;

var key = event.keyCode;

if((key < 48||key > 57)&&key != 46)
{
event.keyCode = 0;
}
else
{
if(key == 46)
{
event.keyCode = 0;
}
}
}
------解决方案--------------------
你的this.txtImgWidth.Text(this.txtImageheight.Text)都是''的,怎么Convert。。。。
你加个判断是否为空,然后转换,简单做法的话就直接
try
{
model.ImgWidth= Convert.ToInt32(this.txtImgWidth.Text); 
}
catch
{
model.ImgWidth = 0;
}
------解决方案--------------------
function KeyPress(obj)
{
var txtval = obj.value;
var key = event.keyCode;
if((key <48 || key >57) &&key !=46)
{
event.keyCode = 0;
}
else
{
if(key == 46)
{
if(txtval.indexOf(".") != -1 || txtval.length == 0)
event.keyCode = 0;
}
}
}

<asp:TextBox ID="txtBeginPrice" runat="server" onkeypress="KeyPress(this)" MaxLength="10"></asp:TextBox>

ls的有点问题。


------解决方案--------------------
那不错误提示说的很清楚了。你在
行 108: model.ImgWidth= Convert.ToInt32(this.txtImgWidth.Text); 
行 109: model.ImgHeight=Convert.ToInt32(this.txtImageheight.Text); 
行 110: //model.validate=Convert.ToDateTime(this.InputCalendar1.Text); 
前加Response.Write("<script language=javascript>alert('"+this.txtImgWidth.Text+"');</script>");这样一句话,看看你的那些文本是不是有问题。就OK了。
比如说,你把一个“节右”Convert成Int。它能不出错吗?
把一个“abncoegh" Convert成DateTime,能不出错吗?