有意思的datatable重构
1 using System.Web.Security;
2 using System.Web.UI;
3 using System.Web.UI.HtmlControls;
4 using System.Web.UI.WebControls;
5 using System.Web.UI.WebControls.WebParts;
6 using System.Xml.Linq;
7
8 namespace ZSAJGUNweb
9 {
10 public partial class dayin : ZSAJGUNweb.Inheritance//load();
11 {
12 public string dayin_text = "";
13 protected void Page_Load(object sender, EventArgs e)
14 {
15 load();
16 if (HttpContext.Current.Request.QueryString["type"].ToString() == "table")
17 {
18 DataTable mydt = new DataTable();
19 switch (HttpContext.Current.Request.QueryString["type_2"].ToString())
20 {
21 case "PoliceInfo":
22 string[] str_arr_PoliceInfo = { "PoliceNO", "PName", "Title", "DeptID", "Mobile" };
23 string[] str_arr_name_PoliceInfo = { "字段1", "字段2", "字段3", "字段4", "字段5" };
24 if (HttpContext.Current.Request.QueryString["edit_"].ToString() == "0")
25 {
26 mydt = mydt_not_null(myservice.GetEditPoliceList("DeptID in (" + Dep_arr_id + ") and ApprovalFlag = 'False'", 0, 0, ref SumPage));
27
28 }
29 else if (HttpContext.Current.Request.QueryString["edit_"].ToString() == "1")
30 {
31 mydt = mydt_not_null(myservice.GetPoliceList("DeptID in (" + Dep_arr_id + ")", 0, 0, ref SumPage));
32 }
33 mydt = dayindata(mydt, str_arr_PoliceInfo, str_arr_name_PoliceInfo);
34 break;
35 case "AlarmTable":
36 string[] str_arr_AlarmTable = { "DeviceID", "DoAdmin", "AlarmDetail", "AlarmTime", "DoDate", "DoDetails", "AlarmType", "AlarmState" };
37 string[] str_arr_name_AlarmTable = { "字段1", "字段2", "字段3", "字段4", "字段5", "字段6", "字段7", "字段8" };
38 if (HttpContext.Current.Request.QueryString["where_string"] != null)
39 {
40 mydt = dayindata(mydt_not_null(myservice.GetAlarmList(HttpContext.Current.Request.QueryString["where_string"].ToString(), 0, 0, ref SumPage)), str_arr_AlarmTable, str_arr_name_AlarmTable);
41 }
42 break;
43 case "Apply_Title":
44 string[] str_arr_Apply_Title = { "DocNo", "DeptID", "PName", "Reason", "PAName", "PATime", "DocFlag", "State", "TakeName", "TakeGunTime", "AlsoName", "AlsoGunTime", "DeviceID", "Species", "FirearmsNB", "GetBulNum", "BackBulNum" };
45 string[] str_arr_name_Apply_Title = { "字段1", "字段2", "字段3", "字段4", "字段5", "字段6", "字段7", "字段8", "字段9", "字段10", "字段11", "字段12", "字段13", "字段14", "字段15", "字段16", "字段17" };
46 string sql_str= "";
47 if (HttpContext.Current.Request.QueryString["DocNo"] != null)
48 {
49 sql_str = " and B.DocFlag = " + HttpContext.Current.Request.QueryString["DocNo"].ToString();
50 }
51 mydt = dayindata(mydt_not_null(myservice.GetUseFirearm(" B.DeptID in (" + Dep_arr_id + ") " + sql_str, 0, 0, ref SumPage)), str_arr_Apply_Title, str_arr_name_Apply_Title);
52 break;
53 case "FirearmsInfo":
54 string[] str_arr_FirearmsInfo = { "Species", "FirearmsNB", "DeptID", "BulNum", "bStart", "StartDate", "DeviceID", "ReignState" };
55 string[] str_arr_name_FirearmsInfo = { "字段1", "字段2", "字段3", "字段4", "字段5", "字段6", "字段7", "字段8" };
56 mydt = dayindata(mydt_not_null(myservice.GetFirearmsList(" DeptID in (" + Dep_arr_id + ")", 0, 0, ref SumPage)), str_arr_FirearmsInfo, str_arr_name_FirearmsInfo);
57 break;
58 default:
59 break;
60 }
61 this.mygv.DataSource = mydt;
62 this.mygv.DataBind();
63 }
64 }
65 public DataTable dayindata(DataTable mydt, string[] str_arr, string[] str_arr_name)
66 {
67 DataTable mydt_return = new DataTable();
68 mydt_return.Rows.Clear();
69 mydt_return.Columns.Clear();
70 for (int i_ = 0; i_ != str_arr.Length; i_++)
71 {
72 mydt_return.Columns.Add(str_arr_name[i_].ToString(), typeof(System.String));
73 }
74 if(mydt != null){
75 for (int i = 0; i != mydt.Rows.Count; i++)
76 {
77 DataRow value_all = mydt_return.NewRow();
78 for (int i_ = 0; i_ != str_arr.Length; i_++)
79 {
80 value_all[i_] = value_name(str_arr[i_], mydt.Rows[i][str_arr[i_].ToString()].ToString());
81 }
82 mydt_return.Rows.Add(value_all);
83 }
84 return mydt_return;
85 }
86 return null;
87 }
88 public string value_name(string name, string id) {
89 switch (name)
90 {
91 case "DeptID":
92 return myservice.GetDepartmentsInfo(int.Parse(id.ToString())).DeptName.ToString();
93 break;
94 case "DeviceID":
95 return myservice.GetDeviceInfo(int.Parse(id.ToString())).DeviceName.ToString();
96 break;
97 case "AlarmType":
98 string[] AlarmType_arr = { "状态1", "状态2", "状态3", "状态4" };
99 return AlarmType_arr[int.Parse(id.ToString())].ToString();
100 break;
101 case "AlarmState":
102 string[] AlarmState_arr = { "状态1", "状态2" };
103 if (id == "False")
104 {
105 id = "0";
106 }
107 else {
108 id = "1";
109 }
110 return AlarmState_arr[int.Parse(id.ToString())].ToString();
111 break;
112 case "AlarmClass":
113 string[] AlarmClass_arr = { "状态1", "状态2", "状态3", "状态4" };
114 return AlarmClass_arr[int.Parse(id.ToString())].ToString();
115 break;
116 case "DocFlag":
117 string[] DocFlag_arr = { "状态1", "状态2", "状态3", "状态4", "状态5", "状态6" };
118 return DocFlag_arr[int.Parse(id.ToString())].ToString();
119 break;
120 case "State":
121 string[] State_arr = { "状态1", "状态2", "状态3", "状态4", "状态5", "状态6" };
122 return State_arr[int.Parse(id.ToString())].ToString();
123 break;
124 case "bStart":
125 string[] bStart_arr = { "状态1", "状态2" };
126 if (id == "False")
127 {
128 id = "0";
129 }
130 else
131 {
132 id = "1";
133 }
134 return bStart_arr[int.Parse(id.ToString())].ToString();
135 break;
136 case "ReignState":
137 string[] ReignState_arr = { "状态1", "状态2" };
138 if (id == "False")
139 {
140 id = "0";
141 }
142 else
143 {
144 id = "1";
145 }
146 return ReignState_arr[int.Parse(id.ToString())].ToString();
147 break;
148 default:
149 return id;
150 break;
151 }
152 return id;
153 }
154 }
155 }
作用是把表头名字和一些状态字段变成用户可以阅读的文字