jQuery MiniUI

 找回密码
 立即注册
查看: 3855|回复: 6
打印 上一主题 下一主题

datagrid数据保存时检测到异常时如何提示用户? [复制链接]

Rank: 3Rank: 3

跳转到指定楼层
楼主
发表于 2012-8-14 12:49:14 |只看该作者 |倒序浏览
我是用.net 开发的.

在这个演示中:http://www.miniui.com/demo/#src=datagrid/celledit.html

如果我的员工帐号不能为空,但我在保存时.net程序检测到员工帐号为空了,这时怎么出现alert的提示框呢?

我看saveData()事件中
error: function (jqXHR, textStatus, errorThrown) {                    alert(jqXHR.responseText);
这个只是在json数据有错误时间才能弹出提示,而且是html代码的形式,好像不太合理.

Rank: 9Rank: 9Rank: 9

沙发
发表于 2012-8-14 13:22:54 |只看该作者
保存的时候,是用jquery的ajax提交的。
数据交互方式是透明的,你可以在后台返回一个特定格式,前台解析后alert。

Rank: 3Rank: 3

板凳
发表于 2012-8-14 14:34:49 |只看该作者
请教下如何实现呢?
我的想法是在提交保存后,.net程序去检测数据是否准确,是否违反主键约束,有的话就alert出来提示.
  1. //保存
  2.         function saveData() {
  3.             var data = grid.getChanges();
  4.             var json = mini.encode(data);
  5.             grid.loading("保存中,请稍后......");
  6.             $.ajax({
  7.                 url: "/data/default.aspx?method=SaveEmployees",
  8.                 data: { data: json },
  9.                 type: "post",
  10.                 success: function (text) {
  11.                     grid.reload();
  12.                 },
  13.                 error: function (jqXHR, textStatus, errorThrown) {
  14.                     alert(jqXHR.responseText);
  15.                 }
  16.             });
  17.         }


  18.     protected void Page_Load(object sender, EventArgs e)
  19.     {
  20.         String methodName = Request["method"];
  21.         if (String.IsNullOrEmpty(methodName)) return;

  22.         //invoke method
  23.         Type type = this.GetType();
  24.         MethodInfo method = type.GetMethod(methodName);
  25.         method.Invoke(this, null);

  26.     }

  27.     /// <summary>
  28.     /// 保存数据
  29.     /// </summary>
  30.     public void SaveEmployees()
  31.     {
  32.         Response.Write("[如何返回错误信息呢]");
  33.         Response.End();      

  34.     }
复制代码

Rank: 9Rank: 9Rank: 9

地板
发表于 2012-8-14 14:47:37 |只看该作者
    //服务端
    public void SaveEmployees()
    {
        Hashtable result = new Hashtable();
        result["error"] = -1;
        result["msg"] = "错误啦";
        String json = PluSoft.Utils.JSON.Encode(result);        
        Response.Write(json);

    }
    //ajax
   success: function (text) {
            var o = mini.decode(text);
           if(o.error != 0){
               alert(o.msg);
            }else{
                    grid.reload();
            }
  },

Rank: 3Rank: 3

5#
发表于 2012-8-14 17:54:55 |只看该作者
谢谢管理员的指点.

但屏幕上有个保存中的提示.

如何取消这个呢?
grid.loading("保存中,请稍后......");

Rank: 9Rank: 9Rank: 9

6#
发表于 2012-8-14 18:30:19 |只看该作者
grid.unmask();

Rank: 3Rank: 3

7#
发表于 2012-8-15 18:03:22 |只看该作者
谢谢管理员!

Archiver|普加软件

GMT+8, 2024-5-6 23:41 , Processed in 1.019517 second(s), 9 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部