繁体   English   中英

在JavaScript中需要帮助

[英]Need help in javascript

我的数据输入页面有两个问题:问题1)尽管我正在进行客户端验证,但为什么指针要在页面后面进行编码..如果该字段为空,我有一个名为“金额”的文本字段,我是一条警报消息并关注在那个领域。 但是要紧紧地控制转到页面后面的代码:在这一行:十进制数量= Convert.ToDecimal(txtAmount.Text);在这里,我得到了例外,“输入参数的格式不正确”,这是javascript代码:

<script type="text/javascript">
function validate()
{
    var value = document.getElementById("txtAmount").value;
    if(value=="")
    {
    alert("Please enterAmount.");
    document.getElementById("txtAmount").focus();   
    return false;        
    }
    else
    {
     return  true;     
     }
}
</script>
<asp:Button ID="btnSave" runat="server" Text="Save" Width="64px" Font-Bold="true" OnClientClick="validate()" onclick="btnSave_Click"/>

Prblm2:当我输入重复的值时,我期望的消息是“此ID已经存在,请尝试使用另一个ID”,但是我正在获取像主键冲突之类的信息…………这是代码。

        if (!Page.IsValid)
            return;
        int sum = 0;
        ContactPersonBO contactpersonbo = new ContactPersonBO();
        string personid = txtPersonid.Text;
        decimal amount = Convert.ToDecimal(txtAmount.Text);
        try
        {

            contactpersonbo.PersonID = personid;            
            contactpersonbo.Amount = amount;         

            sum = ontactpersonbo.InsertPerson();
            if (sum > 0)
            {
                lblMessage.Text = "person has been succesfully added.”;              

            }
            else
            {

                lblMessage.Text = "This person already exists, please try with otherid”;
            }

        }
        catch (Exception ex)
        {
            lblMessage.Text = ex.Message.ToString();
        }

注意:这里的控制永远不会出现在这一部分:

    else
    {

        lblMessage.Text = "This person already exists, please try with otherid”;
    }

关于第一个问题,您应该从onclick处理程序中返回false ,以防止进行默认处理和提交页面:

<asp:Button ID="btnSave" runat="server" Text="Save" Width="64px"
    Font-Bold="true" OnClientClick="return validate()" onclick="btnSave_Click" />

关于第二个问题,似乎您的InsertPerson()方法引发异常,而不是如果此人已经存在, InsertPerson()返回0 从下面发布的代码中,该方法似乎没有对新人员的存在进行任何检查。您可能希望使用例如select查询来添加该测试。

可能txtAmound不会包含可解析的sring(它可能为空或小数点分隔符不符合您使用的设置),您可以使用Decimal.TryParse代替。请记住,如果以下情况不会引发异常字符串格式不正确

http://msdn.microsoft.com/zh-CN/library/system.decimal.tryparse.aspx

对于第二种情况,我不知道您是DAL(数据访问层),但是我可以猜到您要插入人的表/对象中有一个主键约束。 可能您使用的是已保存的ID

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM