GridViewSetterBase.cs 3.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. using Newtonsoft.Json.Linq;
  2. using PTMedicalInsurance.Helper;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Data;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using System.Windows.Forms;
  10. namespace PTMedicalInsurance.FormSetter
  11. {
  12. public class GridViewSetterBase
  13. {
  14. /// <summary>
  15. /// 动态增加datagridview列
  16. /// </summary>
  17. /// <param name="dgv"></param>
  18. /// <param name="headerText"></param>
  19. /// <param name="dataPropertyName"></param>
  20. public void AddDGVColumn(DataGridView dgv, string headerText, string dataPropertyName, int width = 120)
  21. {
  22. DataGridViewColumn newColumn = new DataGridViewTextBoxColumn();
  23. newColumn.HeaderText = headerText;
  24. newColumn.Width = width;
  25. newColumn.DataPropertyName = dataPropertyName;
  26. newColumn.Name = dataPropertyName;
  27. dgv.Columns.Add(newColumn);
  28. }
  29. protected void AddDGVCheckBoxColumn(DataGridView dgv, string headerText, string dataPropertyName, int width = 120)
  30. {
  31. DataGridViewColumn newColumn = new DataGridViewCheckBoxColumn();
  32. newColumn.HeaderText = headerText;
  33. newColumn.Width = width;
  34. newColumn.DataPropertyName = dataPropertyName;
  35. newColumn.Name = dataPropertyName;
  36. dgv.Columns.Add(newColumn);
  37. }
  38. public void SetDBLKCombox(ref PTControl.DBLookupCombox dblcbx, string sqlStr)
  39. {
  40. SetDBLKCombox(ref dblcbx, GetDBLKComboxTable(sqlStr));
  41. }
  42. public void SetDBLKCombox(ref PTControl.DBLookupCombox dblcbx, DataTable dt)
  43. {
  44. if (dt == null) return;
  45. dblcbx.sDisplayField = "Code,Name,SearchCode";
  46. dblcbx.sDisplayMember = "名称";
  47. dblcbx.sKeyWords = "Code,SearchCode";
  48. dblcbx.DataSource = dt;
  49. dblcbx.RowFilterVisible = true;
  50. dblcbx.TextBox.Width = 400;
  51. dblcbx.DataGridView.Width = 400;
  52. dblcbx.DataGridView.Columns[0].Name = "编码";
  53. dblcbx.DataGridView.Columns[1].Name = "名称";
  54. dblcbx.DataGridView.Columns[2].Name = "查找码";
  55. dblcbx.DataGridView.Columns[0].Width = 100;
  56. dblcbx.DataGridView.Columns[1].Width = 200;
  57. }
  58. public DataTable GetDBLKComboxTable(string sqlStr)
  59. {
  60. InvokeHelper invoker = new InvokeHelper();
  61. dynamic joInparm = new JObject();
  62. dynamic joTmp = new JObject();
  63. joTmp.sqlStr = sqlStr;
  64. JArray jaParams = new JArray();
  65. jaParams.Add(joTmp);
  66. joInparm.Add("params", JArray.FromObject(jaParams));
  67. joInparm.code = "09010014";
  68. string inParam = joInparm.ToString();
  69. JObject joRtn = invoker.invokeInsuService(inParam, "获取下拉框消息");
  70. //dynamic jsonRtn = JsonConvert.DeserializeObject(strRtn);
  71. DataTable dt = (DataTable)joRtn["result"].ToObject(typeof(DataTable));
  72. //dt.Columns[0].ColumnName = "编码";
  73. //dt.Columns[1].ColumnName = "名称";
  74. //dt.Columns[2].ColumnName = "拼音查找码";
  75. return dt;
  76. }
  77. public void SetCombox(ref System.Windows.Forms.ComboBox cbx, string sqlStr, string displayMember = "Name", string valueMember = "Code")
  78. {
  79. try
  80. {
  81. cbx.DataSource = GetDBLKComboxTable(sqlStr);
  82. cbx.DisplayMember = displayMember;
  83. cbx.ValueMember = valueMember;
  84. }
  85. catch (Exception ex)
  86. {
  87. MessageBox.Show($"SetCombox控件{cbx.Name}设置异常:{ex.Message}");
  88. }
  89. }
  90. }
  91. }