Ejemplo n.º 1
0
        /// <summary>
        /// 验证数据
        /// </summary>
        private bool CheckData()
        {
            if (string.IsNullOrEmpty(txtCodeName.Text))
            {
                hidInfo.Value = "请输入代码名称!";
                txtCodeName.Focus();
                return(false);
            }

            if (string.IsNullOrEmpty(txtCodeValue.Text))
            {
                hidInfo.Value = "请输入代码值!";
                txtCodeValue.Focus();
                return(false);
            }

            if (CodeQuery.CheckCodeName(txtCodeName.Text.Trim(), this.CodeID, this.CodeGroupID, this.CurOperation))
            {
                hidInfo.Value = "代码名称已经存在,请重新输入名称!";
                txtCodeName.Focus();
                return(false);
            }

            if (CodeQuery.CheckCodeValue(txtCodeValue.Text.Trim(), this.CodeID, this.CodeGroupID, this.CurOperation))
            {
                hidInfo.Value = "代码值已经存在,请重新输入代码值!";
                txtCodeValue.Focus();
                return(false);
            }
            return(true);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 邦定群组数据
        /// </summary>
        private void BindGridView()
        {
            DataTable dt = new CodeQuery().GetAllCode(this.CodeGroupID);

            grid.DataSource = dt;
            grid.DataBind();
        }
        /// <summary>
        /// toolbar事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void toolbar_MenuItemClick(object sender, MenuEventArgs e)
        {
            long ID = 0;

            switch (e.Item.Value)
            {
            case "Delete":
                if (e.Item.Value == "Delete")
                {
                    int    succeed        = 0;
                    string CodeGroupNames = "";
                    for (int j = 0; j < tvOU.CheckedNodes.Count; j++)
                    {
                        Infragistics.WebUI.UltraWebNavigator.Node tn = (Infragistics.WebUI.UltraWebNavigator.Node)tvOU.CheckedNodes[j];
                        long CodeGroupID = NDConvert.ToInt64(tn.DataKey.ToString());

                        CodeGroupEntity entity = new CodeGroupEntity(CodeGroupID);
                        if (!CodeQuery.IsExistCode(CodeGroupID))
                        {
                            entity.IsDeleted = true;
                            new CodeGroupRule().Update(entity);
                            succeed++;
                        }
                        else
                        {
                            CodeGroupNames += "[" + entity.CodeGroupName + "]";
                        }
                    }
                    if (succeed > 0)
                    {
                        BindTreeView();
                        PageHelper.ShowMessage("删除成功!");
                    }
                    if (CodeGroupNames != "")
                    {
                        string msgErr = "代码组名称为" + CodeGroupNames + "的记录不可删除!\\n\\n" +
                                        "可先删除代码组中包含的代码记录后再删除该代码组!";
                        PageHelper.ShowExceptionMessage(msgErr);
                    }
                }
                break;

            case "Update":
                ID = NDConvert.ToInt64(((Infragistics.WebUI.UltraWebNavigator.Node)tvOU.CheckedNodes[0]).DataKey.ToString());
                Page.ClientScript.RegisterStartupScript(this.GetType(), "更新", "showModalWindow('CodeGroupEditLY', '修改',750, 220, '../../web/SysManager/CodeGroupEdit.aspx?Operation=2&ID=' + " + ID + ");", true);
                break;
            }
        }
Ejemplo n.º 4
0
  //-------------------------------------------------------------------------------------
  /// <summary>
  /// Выполняет кодовый запрос на объекте.
  /// </summary>
  /// <param name="dstObject">Объект, на котором будет выполнен запрос.</param>
  /// <param name="query">Выполняемый кодовый запрос.</param>
  public static object ExecCodeQuery(object dstObject, CodeQuery query)
  {
   try
   {
    DynamicMethod dm = new DynamicMethod("DynMethod", MethodAttributes.Public | MethodAttributes.Static,
    CallingConventions.Standard, typeof(object), new Type[] { dstObject.GetType() }, dstObject.GetType(), true);
    //DynamicMethod dm = new DynamicMethod("DynMethod", null, null, dstObject.GetType(), true);
    DynamicILInfo dii = dm.GetDynamicILInfo();

    SignatureHelper sig = SignatureHelper.GetLocalVarSigHelper();
    if(query.LocalVariables != null)
     foreach(KeyValuePair<Type, bool> i in query.LocalVariables)
      sig.AddArgument(i.Key, i.Value);
    dii.SetLocalSignature(sig.GetSignature());

    Customize(query.Body, dii, query.Schema);

    dii.SetCode(query.Body, query.MaxStackSize);

    DynMethod deleg = (DynMethod)dm.CreateDelegate(typeof(DynMethod), dstObject);
    return deleg();

    //dm.Invoke(dstObject, new object[] { dstObject });
   }
   catch
   {
    throw;
   }
  }
Ejemplo n.º 5
0
  public static ValuesPair<CodeQuery, List<String>> GetCodeQuery(Type type, string typeWrapperCode)
  {
   CSharpCodeProvider cscp = null;

   try
   {
    cscp = new CSharpCodeProvider();
    ValuesPair<CodeQuery, List<String>> res = 
    new ValuesPair<CodeQuery, List<string>>(null, new List<string>());
    CodeQuery query = new CodeQuery();
    query.CodeText = typeWrapperCode;
    query.ObjectType = type.FullName;

    CompilerParameters cp = new CompilerParameters();
    cp.GenerateInMemory = true;
    cp.TreatWarningsAsErrors = false;
    foreach(Assembly asm in AppDomain.CurrentDomain.GetAssemblies())
     if(asm.IsDynamic == false)
      cp.ReferencedAssemblies.Add(asm.Location);
    CompilerResults cr = cscp.CompileAssemblyFromSource(cp, typeWrapperCode);
    if(cr.Errors.Count > 0)
    {
     foreach(CompilerError err in cr.Errors)
      res.Value2.Add(String.Format("[{0},{1}] {2} {3}: {4}",
       err.Line, err.Column, err.IsWarning ? "Warning" : "Error", err.ErrorNumber, err.ErrorText));
    }
    if(cr.Errors.HasErrors)
     return res;

    MethodInfo mi = cr.CompiledAssembly.GetType(type.Name).GetMethod("DynamicMethod",
                                                                     BindingFlags.NonPublic | BindingFlags.Instance);
    MethodBody mb = mi.GetMethodBody();
    query.MaxStackSize = mb.MaxStackSize;
    query.Body = mb.GetILAsByteArray();
    query.Schema = Discover(query.Body, mi, type);

    if(mb.LocalVariables.Count > 0)
    {
     query.LocalVariables = new List<KeyValuePair<Type, bool>>(mb.LocalVariables.Count);
     foreach(LocalVariableInfo lvi in mb.LocalVariables)
      query.LocalVariables.Add(new KeyValuePair<Type, bool>(lvi.LocalType, lvi.IsPinned));
    }
    res.Value1 = query;

    return res;
   }
   finally
   {
    if(cscp != null)
     cscp.Dispose();
   }
  }