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; }
/// <summary> /// 绑定表单中的常量数据 /// </summary> private void BindFormData() { DataSet dsMetaData = MetaDataDAL.GetGroupMetaData(); DataTable dtStatus = MetaDataBLL.GetMetaDataByGroup("ProjectTask_Status", dsMetaData); dtStatus.TableName = "状态"; DDLBind(ddlStatus, dtStatus, "0", "ItemID", "Title"); }
/// <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); }
/// <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); }
/// <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(); } }
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("异常!")); } }
/// <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('这是一个项目,删除后将同时删除项目下级的所有的任务,确定仍要删除吗?')"; //} } }