javascript - 如何显示来自服务器端的消息?

标签 javascript c# jquery

我不是 Java 开发人员,但我的公司购买了一款产品来处理基于 Java 的会计工作。现在我遇到了一个问题,因为他们想防止在系统上重复开具发票,而软件允许用户这样做。我调用支持人员,他们建议我在客户端创建一个抑制字段,在该字段上复制我想要显示的消息,并在用户切换到下一个字段时阅读该字段。这些步骤很多,效率很低。以下是我根据他们的建议编写的代码。 它目前两次向我显示发票已存在的消息

服务器端

CSServer.log (Step)
  if ((CSEvent.getTarget().getName() == "InvoiceNumber") && (CSEvent.getAction() == "Tabout" ) && (Step == 0)) 
    {
      if (!cnn) 
      {
        CSServer.log ("GPCONNECT Lookup::CSForm_OnValidateLookup Connection to the database failed");
      } 
      else 
      {
        Sql  = "SELECT COUNT (*) as Result FROM [DYNAMICS].[dbo].[AP_Invoice_Table] WHERE [VendorID] = '" + CSForm.getField("VendorID").getValue() + "' and [DocumentNumber] = '" + CSForm.getField("InvoiceNumber").getValue()+"'";
        resultInvSet = cnn.executeSQL(Sql);
        var x =null;
        x = resultInvSet.getValue("Result");
      }
      if (x > 0) 
      {
        CSForm.getField("msg").setValue("Invoice number already exist, please check your entry!");
        return false;
      } 
      else
      {
        CSForm.getField("msg").setValue("");
      }
    }

客户端

function InvoiceAmount_OnFocus()
{
  var m =CSForm.getField('msg').getValue();
  if (m != "")
  {
    $("#InvoiceNumber").focus();
    CSClient.alert(m);
    CSForm.getField("InvoiceNumber").setFillColor("FF0000");
  }
  else
  {
  CSForm.getField("InvoiceNumber").setFillColor("FFFFFF");
  }
  return true;
}

有人可以告诉我处理这个问题的正确方法吗?

更新: 客户端和服务器使用 SOAP 和 HTTP 调用进行通信。

最佳答案

创建一个通过 AJAX 调用的网络方法,并根据该函数的结果弹出 javascript 警报。

示例(在您的 .aspx 页面中):

        function doSomething(id) {
            $.ajax({
                type: "POST",
                url: "Do_Something.aspx/DoSomething?id=" + id,
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (response) {
                    alert(response);
                }
            });

在 Do_Something.aspx.cs 中:

    [WebMethod]
    public static string DoSomething(string id)
    {
        var docs = SqlHelper.SelectAllByInvoiceId(id);
        if (docs.Count > 0)
        {
            return "exists";
        }
        return "does not exist";
    }

关于javascript - 如何显示来自服务器端的消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27026621/

相关文章:

c# - WPF C#媒体元素显示视频的第一张图像

jquery - 在 asp.net mvc 3 中的 Ajax 响应后使用 Jquery 对部分 View 进行动画处理

javascript - jQuery 中确认对话框的本地化

javascript - JSON.parse 不将字符串转换为对象

javascript - 如何找到discord机器人所连接的语音聊天

javascript - 具有相似 id 模式的按钮的单个 onclick 函数 - JavaScript

javascript - Bootstrap 在单击到侧面时调整容器大小

javascript - 无法解释的参数传递到 JavaScript 函数中,我缺少一些基本的东西

c# - 这段代码需要什么样的同步?

c# - ASP.NET MVC/C# - 如何使用 MVC 中数据表/列表的格式转换/创建 Excel (xls)?