コード例 #1
0
        private void DDLBind(DropDownList ddl, string gpTitle, string initValue)
        {
            //先清空DropDownList
            ddl.Items.Clear();
            //再绑定DropDownList
            string cnTitle = gpTitle == "Frequency" ? "--请选择--" : "--请选择--";

            ddl.Items.Add(new ListItem(cnTitle, "0"));
            DataSet   dsMetaData = (DataSet)ViewState["dsMetaData"];
            DataTable dtMetas    = MetaDataBLL.GetMetaDataByGroup(gpTitle, dsMetaData);//以gpTitle为父级的常量表

            dtMetas.DefaultView.Sort = "ItemID Desc";
            dtMetas = dtMetas.DefaultView.ToTable();
            for (int i = 0; i < dtMetas.Rows.Count; i++)
            {
                DataRow dr = dtMetas.Rows[i];
                ddl.Items.Add(new ListItem(dr["Title"].ToString(), dr["ItemID"].ToString()));
                ddl.Items[i].Attributes.Add("style", GetStyle(dr["ItemID"].ToString()));
            }

            //设置DropDownList初始项
            if (string.IsNullOrEmpty(initValue))
            {
                initValue = "0";
            }
            ddl.SelectedValue = initValue;
            ddl.Attributes.Add("style", GetStyle(initValue));
            //设置DropDownList事件属性
            //ddl.AutoPostBack = true;
            //ddl.SelectedIndexChanged += ddl_SelectedIndexChanged;
        }
コード例 #2
0
        /// <summary>
        /// 绑定表单中的常量数据
        /// </summary>
        private void BindFormData()
        {
            DataSet   dsMetaData = MetaDataDAL.GetGroupMetaData();
            DataTable dtStatus   = MetaDataBLL.GetMetaDataByGroup("ProjectTask_Status", dsMetaData);

            dtStatus.TableName = "状态";
            DDLBind(ddlStatus, dtStatus, "0", "ItemID", "Title");
        }
コード例 #3
0
        /// <summary>
        /// 根据计划ID获取计划的类型:(操作)单操作计划、(计划)多操作计划、(已删除)已删除计划、(计划操作)计划的操作
        /// </summary>
        /// <param name="planId">计划ID</param>
        /// <param name="dtPlans">计划表</param>
        /// <param name="dtActions">操作表</param>
        /// <returns></returns>
        private string GetPlanTypeByPlanID(long planId, DataTable dtPlans, DataTable dtActions)
        {
            string planType = "";

            DataRow[] drsPlan = dtPlans.Select("PlanID=" + planId);
            if (drsPlan.Length <= 0)
            {
                planType = "已删除";
            }
            else
            {
                DataRow drPlan   = drsPlan[0];
                long    actionId = SystemDataExtension.GetInt32(drPlan, "ActionID"); //计划对应的操作ID
                long    parentId = SystemDataExtension.GetInt32(drPlan, "ParentID"); //计划的父级ID,若为0,则为计划,否则为多操作计划关联的某一个操作
                if (parentId == 0)
                {
                    DataRow[] drsActions = dtActions.Select("ActionID=" + actionId);
                    if (drsActions.Length > 0)
                    {
                        DataRow drAction = drsActions[0];
                        int     typeId   = SystemDataExtension.GetInt16(drAction, "ItemTypeID");
                        if (typeId != 0)
                        {
                            //获取元数据集合
                            DataSet dsMetaData = MetaDataDAL.GetGroupMetaData();
                            ViewState["dsMetaData"] = dsMetaData;
                            DataTable dtActionType  = MetaDataBLL.GetMetaDataByGroup("Action", dsMetaData);
                            DataRow[] drsActionType = dtActionType.Select("ItemID=" + typeId);
                            if (drsActionType.Length > 0)
                            {
                                planType = SystemDataExtension.GetString(drsActionType[0], "Title");
                            }
                        }
                    }
                }
                else
                {
                    planType = "计划操作";
                }
            }
            return(planType);
        }
コード例 #4
0
        /// <summary>
        /// 获取指定组名的元数据
        /// </summary>
        /// <param name="dsMetaData">元数据集</param>
        /// <param name="gpTitle">元数据组名</param>
        /// <param name="sysfldValue">系统给定值</param>
        /// <param name="isfk">是否外键</param>
        /// <returns></returns>
        private string GetMetadata(DataSet dsMetaData, string gpTitle, string sysfldValue, int isfk)
        {
            string mdata = "无推荐值";

            if (sysfldValue != string.Empty)
            {
                if (isfk == 0)
                {
                    mdata = "推荐值:" + sysfldValue;
                }
                else
                {
                    DataTable dtMetas = MetaDataBLL.GetMetaDataByGroup(gpTitle, dsMetaData);//以gpTitle为父级的常量表
                    DataRow[] drs     = dtMetas.Select("ItemID=" + sysfldValue);
                    if (drs.Length > 0)
                    {
                        mdata = "推荐值:" + drs[0]["Title"];
                    }
                }
            }
            return(mdata);
        }
コード例 #5
0
        /// <summary>
        /// 根据计划类型设置计划的备选数据列表
        /// </summary>
        /// <param name="planType">计划类型</param>
        /// <param name="initValue">选择初始值</param>
        private void BindActions(string planType, string initValue)
        {
            try
            {
                hdfPlanType.Value = planType;

                DataSet   dsMetaData    = (DataSet)ViewState["dsMetaData"];
                DataTable dtActionType  = MetaDataBLL.GetMetaDataByGroup("Action", dsMetaData);
                DataRow[] drsActionType = dtActionType.Select(string.Format("Title='{0}'", planType));
                ddlPlanAction.Items.Clear();
                ddlPlanAction.Items.Add(new ListItem("--请选择计划--", "0"));
                if (drsActionType.Length > 0)
                {
                    int       typeId    = SystemDataExtension.GetInt16(drsActionType[0], "ItemID");
                    DataTable dtActions = (DataTable)ViewState["dtActions"];
                    DataRow[] drActions = dtActions.Select("ItemTypeID=" + typeId);
                    if (drActions.Length > 0)
                    {
                        foreach (DataRow dr in drActions)
                        {
                            ListItem item = new ListItem
                            {
                                Value = SystemDataExtension.GetInt32(dr, "ActionID").ToString(),
                                Text  = SystemDataExtension.GetString(dr, "Title")
                            };
                            ddlPlanAction.Items.Add(item);
                        }
                        ddlPlanAction.SelectedValue = initValue;
                    }
                }
            }
            catch (Exception ex)
            {
                lbErr.Text = ex.ToString();
            }
        }
コード例 #6
0
ファイル: RoleController.cs プロジェクト: x55756016/kmproject
        public IHttpActionResult Post([FromBody] Request <ExtRole> request)
        {
            try
            {
                IList <RoleFunction> roleFuns = request.Data.RoleFuns;
                string roleId         = request.Data.RoleID;
                string roleName       = request.Data.RoleName;
                int    systemCategory = (int)request.Data.SystemCategory;
                string remark         = request.Data.Remark;

                MetaDataBLL     metaBLL   = new MetaDataBLL();
                List <MetaData> metaDatas = metaBLL.GetList(string.Empty);

                RoleFunctionBLL rfBLL = new RoleFunctionBLL();
                Role            mode  = new Role();
                if (string.IsNullOrEmpty(roleId))
                {
                    mode.RoleName       = roleName;
                    mode.SystemCategory = systemCategory;
                    mode.Remark         = remark;
                    mode.CreateDateTime = DateTime.Now;

                    roleId = bll.Add(mode);
                    if (string.IsNullOrEmpty(roleId))
                    {
                        return(BadRequest("异常"));
                    }

                    foreach (RoleFunction fun in roleFuns)
                    {
                        fun.RoleID         = roleId;
                        fun.CreateDateTime = DateTime.Now;

                        StringBuilder sb = new StringBuilder();
                        sb.AppendFormat("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
                        sb.AppendFormat("<data version=\"2.0\">");

                        string[] _arr1 = fun.DataRange.Split(',');
                        foreach (string str in _arr1)
                        {
                            string[] _arr2 = str.Split('#');
                            if (_arr2.Length != 5)
                            {
                                continue;
                            }
                            int    _id = int.Parse(_arr2[1]);
                            string col = GetValue(metaDatas, _id);
                            sb.AppendFormat("<item>");
                            sb.AppendFormat("<relationship>{0}</relationship>", _arr2[3]);
                            sb.AppendFormat("<nameID>{0}</nameID>", _arr2[1]);
                            sb.AppendFormat("<name>{0}</name>", _arr2[0]);
                            sb.AppendFormat("<operation>{0}</operation>", _arr2[2]);
                            sb.AppendFormat("<value>{0}</value>", _arr2[4]);
                            sb.AppendFormat("<column>{0}</column>", col);
                            sb.AppendFormat("</item>");
                        }
                        sb.AppendFormat("</data>");

                        rfBLL.Add(fun);
                    }
                }
                else
                {
                    mode = bll.Get(roleId);
                    if (mode == null)
                    {
                        return(BadRequest("该记录不存在!"));
                    }
                    mode.RoleName       = roleName;
                    mode.SystemCategory = systemCategory;
                    mode.Remark         = remark;
                    mode.EditTime       = DateTime.Now;

                    bll.Edit(mode);
                    List <RoleFunction> hasRF = rfBLL.GetList(p => p.ROLEID.Equals(roleId) && p.ISDELETED == false);
                    foreach (RoleFunction fun in hasRF)
                    {
                        rfBLL.Delete(fun.RoleFunctionID);
                    }

                    foreach (RoleFunction fun in roleFuns)
                    {
                        fun.RoleID         = roleId;
                        fun.CreateDateTime = DateTime.Now;

                        StringBuilder sb = new StringBuilder();
                        sb.AppendFormat("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
                        sb.AppendFormat("<data version=\"2.0\">");

                        string[] _arr1 = fun.DataRange.Split(',');
                        foreach (string str in _arr1)
                        {
                            string[] _arr2 = str.Split('#');
                            if (_arr2.Length != 5)
                            {
                                continue;
                            }
                            int    _id = int.Parse(_arr2[1]);
                            string col = GetValue(metaDatas, _id);
                            sb.AppendFormat("<item>");
                            sb.AppendFormat("<relationship>{0}</relationship>", _arr2[3]);
                            sb.AppendFormat("<nameID>{0}</nameID>", _arr2[1]);
                            sb.AppendFormat("<name>{0}</name>", _arr2[0]);
                            sb.AppendFormat("<operation>{0}</operation>", _arr2[2]);
                            sb.AppendFormat("<value>{0}</value>", _arr2[4]);
                            sb.AppendFormat("<column>{0}</column>", col);
                            sb.AppendFormat("</item>");
                        }
                        sb.AppendFormat("</data>");
                        fun.DataRange = sb.ToString();

                        rfBLL.Add(fun);
                    }
                }

                return(Ok("ok"));
            }
            catch (Exception ex)
            {
                LogHelper.WriteInfo(ex.ToString());
                return(BadRequest("异常!"));
            }
        }
コード例 #7
0
        /// <summary>
        /// 任务列表行绑定
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void gvTasks_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (((Label)e.Row.FindControl("lbStatus")) != null)
            {
                DataSet   dsMetaData = MetaDataDAL.GetGroupMetaData();
                DataTable dtStatus   = MetaDataBLL.GetMetaDataByGroup("ProjectTask_Status", dsMetaData);
                dtStatus.TableName = "任务状态表";
                Label  lbStatus  = (Label)e.Row.FindControl("lbStatus");
                string initValue = ((HiddenField)e.Row.FindControl("hdfStatus")).Value;
                if (string.IsNullOrEmpty(initValue))
                {
                    initValue = "0";
                }
                DataRow[] drs = dtStatus.Select("ItemID=" + int.Parse(initValue));
                if (drs.Length > 0)
                {
                    DataRow dr = drs[0];
                    lbStatus.Text = SystemDataExtension.GetString(dr, "Title");
                }
            }
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                if (((Label)e.Row.FindControl("lbPercent")) != null)
                {
                    Label  lbPercent = (Label)e.Row.FindControl("lbPercent");
                    string value     = lbPercent.Text;
                    if (!value.Contains("%"))
                    {
                        lbPercent.Text = value + "%";
                    }
                    value = value.TrimEnd('%');
                    int percent = 0;
                    if (!string.IsNullOrEmpty(value))
                    {
                        percent = int.TryParse(value, out percent) ? percent : 0;;
                    }
                    string htmlColor = GetColorByPercent(percent);
                    lbPercent.ForeColor = ColorTranslator.FromHtml(htmlColor);
                    //e.Row.Style.Add(HtmlTextWriterStyle.BackgroundColor, GetColorByPercent(percent));
                }
                if (((Label)e.Row.FindControl("lbTitle")) != null)//标题标签
                {
                    Label  lbTitle     = (Label)e.Row.FindControl("lbTitle");
                    string tTtitle     = lbTitle.Text;
                    int    titleLength = webObj.TitleLength;
                    int    blankCount  = tTtitle.Length - tTtitle.TrimStart().Length;
                    if (tTtitle.Length > titleLength + blankCount)                             //标题内容大于20个
                    {
                        lbTitle.Text = tTtitle.Substring(0, titleLength + blankCount) + "..."; //截取20个显示,其他用“...”号代替
                    }
                    lbTitle.ToolTip = tTtitle;                                                 //鼠标放上去显示全部信息
                }
                if (((Label)e.Row.FindControl("lbDescription")) != null)                       //标题标签
                {
                    Label  lbDescription = (Label)e.Row.FindControl("lbDescription");
                    string tDesc         = lbDescription.Text;
                    int    titleLength   = webObj.TitleLength;
                    if (tDesc.Length > titleLength * 2)                                   //标题内容大于20个
                    {
                        lbDescription.Text = tDesc.Substring(0, titleLength * 2) + "..."; //截取2*webObj.TitleLength个字符,其他用“...”号代替
                    }
                    lbDescription.ToolTip = tDesc;                                        //鼠标放上去显示全部信息
                }

                string    taskId = DataBinder.Eval(e.Row.DataItem, "ID").ToString();
                DataTable dtDoc  = TaskDAL.GetDocsByTaskID(long.Parse(taskId)).Tables[0];
                if (dtDoc.Rows.Count > 0)
                {
                    DataRow   dr      = dtDoc.Rows[0];
                    string    docLink = SystemDataExtension.GetString(dr, "DocLink");
                    HyperLink lnkDoc  = (HyperLink)e.Row.FindControl("lnkDoc");
                    if (!string.IsNullOrEmpty(docLink))
                    {
                        lnkDoc.NavigateUrl = docLink;
                        lnkDoc.Target      = "_blank";
                        lnkDoc.ToolTip     = "点击查看并编辑项目/任务文档";
                        lnkDoc.ImageUrl    = "../../../../_layouts/15/VSProject/images/Docs.png";
                        lnkDoc.ImageHeight = 20;
                    }
                    else
                    {
                        lnkDoc.Enabled = false;
                    }
                }

                e.Row.Attributes.Add("onmouseover", "if(this!=prevselitem){this.style.backgroundColor='#E6F2FB'}"); //当鼠标停留时更改背景色
                e.Row.Attributes.Add("onmouseout", "if(this!=prevselitem){this.style.backgroundColor='#ffffff'}");  //当鼠标移开时还原背景色
                e.Row.Attributes.Add("onclick", e.Row.ClientID + ".checked=true;selectx(this)");
            }
            int userId = VSDLL.Common.Users.UserID;

            if (userId == 0)//未登录,隐藏任务管理按钮列
            {
                e.Row.Cells[8].Visible = false;
            }
            else
            {
                e.Row.Cells[8].Visible = true;
                //HiddenField hdfParentID = (HiddenField)e.Row.FindControl("hdfParentID");

                //if (string.IsNullOrEmpty(hdfParentID.Value)|| hdfParentID.Value=="0")
                //{
                //    LinkButton lnkDel = (LinkButton)e.Row.FindControl("lnkDel");
                //    lnkDel.OnClientClick = "return confirm('这是一个项目,删除后将同时删除项目下级的所有的任务,确定仍要删除吗?')";
                //}
            }
        }