/// <summary> /// Generate custom combobox (include first element) /// </summary> /// <typeparam name="T"></typeparam> /// <param name="id"></param> /// <param name="lst"></param> /// <param name="display"></param> /// <param name="value"></param> /// <param name="firstElement"></param> /// <param name="attribute"></param> /// <param name="include_idx0"></param> /// <returns></returns> public static MvcHtmlString CommonComboBoxWithCustomFirstElement <T>(string id, List <T> lst, string display, string value, string firstElement, object attribute = null, bool include_idx0 = true) where T : class { string currentLang = CommonUtil.GetCurrentLanguage(); string sVal = null; //MessageModel all = MessageUtil.GetMessage(MessageUtil.MODULE_COMMON, MessageUtil.MessageList.MSG0120); // ---All--- //MessageModel select = MessageUtil.GetMessage(MessageUtil.MODULE_COMMON, MessageUtil.MessageList.MSG0113); // ---Select-- string strFirstElemText; if (string.IsNullOrWhiteSpace(firstElement) || firstElement.ToUpper() == COMBO_FIRSTELEMTXT_SELECT) { //strFirstElemText = CommonUtil.GetLabelFromResource("Common", "CMS030", "lblComboboxSelect"); strFirstElemText = CommonUtil.GetLabelFromResource("Common", "CommonResources", "lblComboboxSelect"); } else if (firstElement.ToUpper() == COMBO_FIRSTELEMTXT_ALL) { //strFirstElemText = CommonUtil.GetLabelFromResource("Common", "CMS030", "lblComboboxAll"); strFirstElemText = CommonUtil.GetLabelFromResource("Common", "CommonResources", "lblComboboxAll"); } else if (firstElement.ToUpper() == COMBO_FIRSTELEMTXT_CUSTOM_SELECT) { //strFirstElemText = CommonUtil.GetLabelFromResource("Common", "CMS030", "lblComboboxAll"); strFirstElemText = CommonUtil.GetLabelFromResource("Common", "CommonResources", "lblComboboxCUSTOM_SELECT"); } else if (firstElement.ToUpper() == COMBO_FIRSTELEMTXT_NONE) { //strFirstElemText = CommonUtil.GetLabelFromResource("Common", "CMS030", "lblComboboxAll"); strFirstElemText = COMBO_FIRSTELEMTXT_CUSTOM_NONE; } else { strFirstElemText = firstElement; } var selectBuilder = new TagBuilder("select"); selectBuilder.MergeAttribute("id", id); selectBuilder.MergeAttribute("name", id); if (attribute != null) { PropertyInfo[] prop = attribute.GetType().GetProperties(); if (prop != null) { if (prop.Length > 0) { Dictionary <string, string> dic = new Dictionary <string, string>(); foreach (PropertyInfo p in prop) { object o = p.GetValue(attribute, null); if (o != null) { if (p.Name == "selected") { //sVal = (string)o; sVal = o.ToString(); } else { //dic.Add(p.Name, (String)o); dic.Add(p.Name, o.ToString()); } } } SetHtmlTagAttribute(selectBuilder, dic); } } } if (include_idx0) { var fOptionBuilder = new TagBuilder("option"); fOptionBuilder.MergeAttribute("value", ""); fOptionBuilder.InnerHtml = strFirstElemText; selectBuilder.InnerHtml += fOptionBuilder.ToString(TagRenderMode.Normal); } if (lst != null) { foreach (T et in lst) { PropertyInfo propD = et.GetType().GetProperty(display); PropertyInfo propV = et.GetType().GetProperty(value); PropertyInfo propS = et.GetType().GetProperty("Selected"); if (propD != null && propV != null) { if (propV.GetValue(et, null) != null && propD.GetValue(et, null) != null) { var optionBuilder = new TagBuilder("option"); optionBuilder.MergeAttribute("value", Encoder.HtmlEncode(propV.GetValue(et, null).ToString())); optionBuilder.InnerHtml = Encoder.HtmlEncode(propD.GetValue(et, null).ToString()); string tt = optionBuilder.ToString(TagRenderMode.Normal); if (sVal != null) { if (sVal == propV.GetValue(et, null).ToString()) { string chk = "<option "; int idx = tt.IndexOf(chk); if (idx >= 0) { tt = tt.Substring(0, chk.Length) + "selected=\"true\" " + tt.Substring(chk.Length); } } } if (propS != null) { if ((bool)propS.GetValue(et, null) == true) { string chk = "<option "; int idx = tt.IndexOf(chk); if (idx >= 0) { tt = tt.Substring(0, chk.Length) + "selected=\"true\" " + tt.Substring(chk.Length); } } } selectBuilder.InnerHtml += tt; } } } } return(MvcHtmlString.Create(selectBuilder.ToString(TagRenderMode.Normal))); }
public static string GenerateCSVData <T>(List <T> objDataList, bool includeRunningNo = false, bool includeHeader = true) where T : class { string strCSVResultData = string.Empty; const string C_STRING_TYPE_FULLNAME = "System.String"; try { string strHeaderGrid = string.Empty; StringBuilder sbHeaderData = new StringBuilder(); StringBuilder sbResultData = new StringBuilder(); string strNo = CommonUtil.GetLabelFromResource(MessageUtil.MODULE_COMMON, "CommonResources", "headerNo"); if (objDataList != null) { PropertyInfo[] propInfos = typeof(T).GetProperties(); if (propInfos != null) { List <PropertyInfo> propList = new List <PropertyInfo>(); foreach (PropertyInfo prop in propInfos) { CSVMappingAttribute[] objAttr = prop.GetCustomAttributes(typeof(CSVMappingAttribute), true) as CSVMappingAttribute[]; if (objAttr != null && objAttr.Length > 0) { propList.Add(prop); } } if (propList.Count > 0) { propInfos = propList.ToArray(); Array.Sort(propInfos, delegate(PropertyInfo first, PropertyInfo second) { int iResult = 0; CSVMappingAttribute[] objAttr1 = first.GetCustomAttributes(typeof(CSVMappingAttribute), true) as CSVMappingAttribute[]; CSVMappingAttribute[] objAttr2 = second.GetCustomAttributes(typeof(CSVMappingAttribute), true) as CSVMappingAttribute[]; if ((objAttr1 != null && objAttr1.Length > 0) && (objAttr2 != null && objAttr2.Length > 0)) { if (objAttr1[0] == null && objAttr2[0] != null) { iResult = -1; } else if (objAttr1[0] == null && objAttr2[0] == null) { iResult = 0; } else if (objAttr1[0] != null && objAttr2[0] == null) { iResult = 1; } else { iResult = objAttr1[0].SequenceNo.CompareTo(objAttr2[0].SequenceNo); } } return(iResult); }); PropertyInfo pFirst = propInfos.First(); //Generate Header if (includeHeader == true) { if (includeRunningNo) { sbHeaderData.Append("\"" + strNo + "\""); } foreach (PropertyInfo prop in propInfos) { CSVMappingAttribute[] objAttr = prop.GetCustomAttributes(typeof(CSVMappingAttribute), true) as CSVMappingAttribute[]; if (objAttr == null || objAttr.Length <= 0) { continue; } if (includeRunningNo || pFirst != prop) { sbHeaderData.Append(","); } sbHeaderData.AppendFormat("\"{0}\"", String.IsNullOrEmpty(objAttr[0].HeaderName) ? prop.Name : objAttr[0].HeaderName); } } //Generate Detail int iNo = 0; foreach (T objData in objDataList) { iNo++; if (includeRunningNo) { sbResultData.Append(iNo); } foreach (PropertyInfo prop in propInfos) { CSVMappingAttribute[] objAttr = prop.GetCustomAttributes(typeof(CSVMappingAttribute), true) as CSVMappingAttribute[]; if (objAttr == null || objAttr.Length <= 0) { continue; } string strValue = string.Empty; object o = prop.GetValue(objData, null); if (o != null) { //strValue = o.ToString(); //if (prop.PropertyType.FullName == C_STRING_TYPE_FULLNAME) // strValue = String.Format("=\"\"{0}\"\"", strValue.Replace("\"", "\"\"")); CSVMappingAttribute.eValueOutputFormat operationFormat; if (objAttr[0].ValueOutputFormat == CSVMappingAttribute.eValueOutputFormat.Default) { if (prop.PropertyType.FullName == C_STRING_TYPE_FULLNAME) { operationFormat = CSVMappingAttribute.eValueOutputFormat.Formula; } else { operationFormat = CSVMappingAttribute.eValueOutputFormat.Text; } } else { operationFormat = objAttr[0].ValueOutputFormat; } strValue = (o == null ? "" : o.ToString()); switch (operationFormat) { case CSVMappingAttribute.eValueOutputFormat.Formula: strValue = String.Format("\"=\"\"{0}\"\"\"", strValue.Replace("\"", "\"\"\"\"")); break; case CSVMappingAttribute.eValueOutputFormat.Text: default: strValue = String.Format("\"{0}\"", strValue.Replace("\"", "\"\"")); break; case CSVMappingAttribute.eValueOutputFormat.Raw: if (strValue.Contains(',') || strValue.Contains('"')) { strValue = String.Format("\"{0}\"", strValue.Replace("\"", "\"\"")); } break; } } //sbResultData.AppendFormat("\"{0}\",", strValue); if (includeRunningNo || pFirst != prop) { sbResultData.Append(","); } sbResultData.AppendFormat("{0}", strValue); } sbResultData.AppendLine(); } if (sbResultData != null && sbResultData.Length > 0) { string strHeaderData = string.Empty; string strResultData = sbResultData.ToString(); if (sbHeaderData != null && sbHeaderData.Length > 0) { strHeaderData = sbHeaderData.ToString(); //if (includeRunningNo) // strHeaderData = String.Format("\"{0}\",{1}", strNo, strHeaderData); } strCSVResultData = String.Format("{0}{1}{2}", strHeaderData, Environment.NewLine, strResultData); strCSVResultData = String.IsNullOrEmpty(strCSVResultData) ? string.Empty : strCSVResultData.Replace("<br/>", "").Replace("<BR/>", ""); } } } } } catch (Exception ex) { throw ex; } return(strCSVResultData); }
public static MvcHtmlString CommonComboBox <T>(string id, List <T> lst, string display, string[] value, object attribute = null, bool include_idx0 = true) where T : class { string currentLang = CommonUtil.GetCurrentLanguage(); var selectBuilder = new TagBuilder("select"); selectBuilder.MergeAttribute("id", id); selectBuilder.MergeAttribute("name", id); if (attribute != null) { SetHtmlTagAttribute(selectBuilder, attribute); } if (lst != null) { if (lst.Count > 0 && include_idx0) { var fOptionBuilder = new TagBuilder("option"); fOptionBuilder.MergeAttribute("value", ""); //MessageModel select = MessageUtil.GetMessage(MessageUtil.MODULE_COMMON, MessageUtil.MessageList.MSG0113); string strSelect = CommonUtil.GetLabelFromResource("Common", "CMS030", "lblComboboxSelect"); fOptionBuilder.InnerHtml = strSelect; selectBuilder.InnerHtml += fOptionBuilder.ToString(TagRenderMode.Normal); } foreach (T et in lst) { PropertyInfo propD = et.GetType().GetProperty(display); if (propD != null) { if (propD.GetValue(et, null) != null) { bool valIsSet = false; if (value != null) { if (value.Length > 0) { valIsSet = true; } } string valSet = string.Empty; if (valIsSet) { foreach (string val in value) { PropertyInfo propV = et.GetType().GetProperty(val); if (propV != null) { if (propV.GetValue(et, null) != null) { if (valSet != string.Empty) { valSet += ","; } valSet += propV.GetValue(et, null).ToString(); } } } } var optionBuilder = new TagBuilder("option"); optionBuilder.MergeAttribute("value", valSet); optionBuilder.InnerHtml = propD.GetValue(et, null).ToString(); selectBuilder.InnerHtml += optionBuilder.ToString(TagRenderMode.Normal); } } } } return(MvcHtmlString.Create(selectBuilder.ToString(TagRenderMode.Normal))); }