ASP.NET牡羊座高度な開発チュートリアル:フォーム検出フィールドが保存されている(サイドストーリー)

はじめに:

ちょうど昨日、誰かがこの質問をしたので、この問題に対処する、それが何かの章を追加しました。

本体: 

図:リストを編集するには、ユーザー、ユーザー名は、それが自動的にすでに存在していることを検出するかどうかです。  

HTMLは、特定のコンテンツには、次のように対応します:

                            <ラベル> <EM> * </ em>の用户名:</ label>は
                            、<入力名= "ユーザー名" ID = "ユーザー名" missingmessage = ""クラス= 'easyui-validatebox' validtypeは= "[ 'ユーザー名']を存在"必要="必須」/> 
                        </ div> 
                        <divのクラス= "短いです"> 

検証パラメータは、フィールド名のために、文字列型です。

開始した要求内容:

コア原則:

JSコンクリート中に達成:Aries.EasyUIExtend.jsファイルを。

            validator: function (value, param) {
                if (!param[0]) {
                    this.message = $Core.Lang.ruleError;
                    return false;
                }
                var data = {};
                data.n = param[0].name || param[0];
                data.v = value;
                if (data.n.indexOf(',') > -1) {
                    var items = data.n.split(',');
                    if (items.length > 1) {
                        data.n = items[0];
                        var $input = $(":input[name='" + items[1] + "']");
                        if ($input) {
                            data.n2 = items[1];
                            data.v2 = $input.val();
                        }
                        if (items.length > 2) {
                            var $input = $(":input[name='" + items[2] + "']");
                            if ($input) {
                                data.n3 = items[2];
                                data.v3 = $input.val();
                            }

                        }
                    }
                }
                var id = param[1] || AR.Utility.queryString('id');
                if (id) data.id = id;
                //method, objName, data, async, url, callback, isShowProgress
                var result = AR.Ajax.get("Exists", AR.Form.tableName, data);
                if (result) {
                    if (result.success) {
                        this.message = $Core.Lang.dataExists;
                        return false;
                    }
                    return true;
                }
                else {
                    this.messgage = $Core.Lang.requestFail;
                    return false;
                }
            }
        },

 这段实现,可以带多两个参数,即可以满足三个联合主键组成的唯一。

即配置可以成Exsists['name1','name2','name3']。

对应的后台代码:

 [ActionKey("View,Get")]
        /// <summary>
        /// 是否存在某数据。
        /// </summary>
        public void Exists()
        {
            string name = Query<string>("n", "");
            string value = Query<string>("v", "");

            string name2 = Query<string>("n2", "");
            string value2 = Query<string>("v2", "");

            string name3 = Query<string>("n3", "");
            string value3 = Query<string>("v3", "");//支持到三个,可以了

            bool result = false;
            using (MAction action = new MAction(ObjCode))
            {
                string id = GetID;
                string where = string.Format("{0}='{1}'", name, value);
                if (name2 != "" && value2 != "")
                {
                    where += string.Format(" and {0}='{1}'", name2, value2);
                }
                if (name3 != "" && value3 != "")
                {
                    where += string.Format(" and {0}='{1}'", name3, value3);
                }
                if (!string.IsNullOrEmpty(id))
                {
                    where += string.Format(" and {0}<>'{1}'", action.Data.PrimaryCell.ColumnName, id);
                }
                result = action.Exists(where);
            }
            jsonResult = JsonHelper.OutResult(result, string.Empty);
        }

扩展:在行内编辑,如何实现该功能: 

这里只给出思路,dg.options.onEditing事件中,可以拿到编辑框,可以动态赋加验证属性,也可以拿到值,再调用Exsits手工检测。

おすすめ

転載: www.cnblogs.com/cyq1162/p/11243440.html