ClientListView.aspx.cs
上传用户:xgw_05
上传日期:2009-12-11
资源大小:20208k
文件大小:13k
源码类别:

OA系统

开发平台:

C#

  1. using System;
  2. using System.Collections;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Data.SqlClient;
  6. using System.Drawing;
  7. using System.Web;
  8. using System.Web.SessionState;
  9. using System.Web.UI;
  10. using System.Web.UI.WebControls;
  11. using System.Web.UI.HtmlControls;
  12. namespace UDS.SubModule.CM
  13. {
  14. /// <summary>
  15. /// ClientListView 的摘要说明。
  16. /// </summary>
  17. public class ClientListView : System.Web.UI.Page
  18. {
  19. #region 控件声明
  20. protected System.Web.UI.WebControls.DataGrid dgd_Client;
  21. protected System.Web.UI.WebControls.HyperLink hlk_AddClient;
  22. protected System.Web.UI.WebControls.LinkButton lbtn_MyClient;
  23. protected System.Web.UI.WebControls.LinkButton lbtn_coClient;
  24. protected System.Web.UI.HtmlControls.HtmlTableCell TD1;
  25. protected System.Web.UI.HtmlControls.HtmlTableCell TD2;
  26. protected System.Web.UI.WebControls.Literal ltl_ClientCount;
  27. protected System.Web.UI.WebControls.Literal ltl_ContactTimes;
  28. protected System.Web.UI.WebControls.Panel pnl_ClientInfo;
  29. protected System.Web.UI.WebControls.Panel pnl;
  30. protected System.Web.UI.WebControls.DropDownList ddl_MySubordinate;
  31. protected System.Web.UI.WebControls.Button btn_Del;
  32. protected System.Web.UI.WebControls.Button btn_AddClient;
  33. protected System.Web.UI.WebControls.Button btn_AddContact;
  34. #endregion
  35. private string username;
  36. protected System.Web.UI.WebControls.Button btn_AddLinkman;
  37. private string userid;
  38. private void Page_Load(object sender, System.EventArgs e)
  39. {
  40. if(!Page.IsPostBack)
  41. {
  42. //设置客户权限 默认进入位最高权限'administrator'
  43. Session["cm_permission"] = "administrator";
  44. userid = Request.Cookies["UserID"].Value;
  45. username = Request.Cookies["Username"].Value;
  46. ViewState["userid"] = userid;
  47. ViewState["username"] = username;
  48. ViewState["SortField"] = "UpdateTime1";
  49. ViewState["SortDirect"] =  "DESC";
  50. ViewState["NowTab"] = "client";
  51. BindSubordinate();
  52. BindGrid();
  53. }
  54. else
  55. {
  56. userid = ViewState["userid"].ToString();
  57. username = ViewState["username"].ToString();
  58. }
  59. }
  60. private void BindSubordinate()
  61. {
  62. //绑定下级人员
  63. UDS.Components.Staff staff = new UDS.Components.Staff();
  64. SqlDataReader dr_mysubordinate = staff.GetStaffFromPosition(Request.Cookies["Username"].Value,2,2);
  65. ddl_MySubordinate.DataSource = dr_mysubordinate;
  66. ddl_MySubordinate.DataTextField = "realname";
  67. ddl_MySubordinate.DataValueField = "staff_id";
  68. ddl_MySubordinate.DataBind();
  69. dr_mysubordinate.Close();
  70. // 加入自己
  71. SqlDataReader dr_me = staff.GetStaffInfo(long.Parse(Request.Cookies["UserID"].Value));
  72. string myrealname = "";
  73. while(dr_me.Read())
  74. {
  75. myrealname = dr_me["realname"].ToString();
  76. }
  77. dr_me.Close();
  78. ListItem listitem = new ListItem();
  79. listitem.Text = myrealname;
  80. listitem.Value = Request.Cookies["UserID"].Value;
  81. ddl_MySubordinate.Items.Add(listitem);
  82. if(ddl_MySubordinate.Items.Count!=0)
  83. {
  84. foreach(ListItem li in ddl_MySubordinate.Items)
  85. {
  86. if(li.Value==userid)
  87. li.Selected = true;
  88. else
  89. li.Selected = false;
  90. }
  91. }
  92. else
  93. {
  94. ddl_MySubordinate.Visible = false;
  95. }
  96. }
  97. //绑定我的客户
  98. private void BindGrid()
  99. {
  100. TD1.Attributes["background"] = "../../images/maillistbutton2.gif";
  101. TD2.Attributes["background"] = "../../images/maillistbutton1.gif";
  102. UDS.Components.CM cm = new  UDS.Components.CM();
  103. DataSet ds = new DataSet();
  104. SqlDataReader dr_Client = cm.GetMyClients(Int32.Parse(userid));
  105. DataTable dt_Client = UDS.Components.Tools.ConvertDataReaderToDataTable(dr_Client);
  106. dt_Client.TableName = "Client";
  107. ds.Tables.Add(dt_Client);
  108. SqlDataReader dr_Contact = cm.GetClientContactInfo(0);
  109. DataTable dt_Contact = UDS.Components.Tools.ConvertDataReaderToDataTable(dr_Contact);
  110. dt_Contact.TableName = "Contact";
  111. ds.Tables.Add(dt_Contact);
  112. SqlDataReader dr_Linkman = cm.GetAllLinkman();
  113. DataTable dt_Linkman = UDS.Components.Tools.ConvertDataReaderToDataTable(dr_Linkman);
  114. dt_Linkman.TableName = "Linkman";
  115. ds.Tables.Add(dt_Linkman);
  116. UDS.Components.Staff staff = new UDS.Components.Staff();
  117. SqlDataReader dr_Staff = staff.GetAllStaffs();
  118. DataTable dt_Staff = UDS.Components.Tools.ConvertDataReaderToDataTable(dr_Staff);
  119. dt_Staff.TableName = "Staff";
  120. ds.Tables.Add(dt_Staff);
  121. ds.Relations.Add("ClientAddMan_Staff",ds.Tables["Client"].Columns["AddManID"],ds.Tables["Staff"].Columns["Staff_ID"],false);
  122. ds.Relations.Add("ClientLinkmanID_Linkman",ds.Tables["Client"].Columns["ChiefLinkmanID"],ds.Tables["Linkman"].Columns["ID"],false);
  123. ds.Tables["Client"].DefaultView.Sort = (string)ViewState["SortField"] + " " + ViewState["SortDirect"];
  124. dgd_Client.DataSource = ds.Tables["Client"].DefaultView;
  125. dgd_Client.DataBind();
  126. DateTime monthbegin = DateTime.Now.AddMonths(-1);
  127. DateTime monthend = new DateTime(DateTime.Now.Year,DateTime.Now.Month,DateTime.DaysInMonth(DateTime.Now.Year,DateTime.Now.Month));
  128. SqlDataReader dr_ContactTimes = cm.GetContactByStaffIDandTime(Int32.Parse(userid),monthbegin,monthend);
  129. int contacttimes = 0;
  130. while(dr_ContactTimes.Read())
  131. {
  132. contacttimes++;
  133. }
  134. dr_ContactTimes.Close();
  135. if(Session["cm_permission"].ToString() == "administrator")
  136. {
  137. pnl.Visible = true;
  138. pnl_ClientInfo.Visible = true;
  139. }
  140. else
  141. {
  142. pnl.Visible = false;
  143. pnl_ClientInfo.Visible = false;
  144. }
  145. //如果没有客户,则 不出现添加 联系人 和 接触情况的 按钮
  146. if (dgd_Client.Items.Count==0)
  147. {
  148. btn_AddLinkman.Visible = false;
  149. btn_AddContact.Visible = false;
  150. }
  151. else
  152. {
  153. btn_AddLinkman.Visible = true;
  154. btn_AddContact.Visible = true;
  155. }
  156. ltl_ClientCount.Text = dt_Client.Rows.Count.ToString();
  157. ltl_ContactTimes.Text = contacttimes.ToString();
  158. }
  159. //绑定我的协同客户
  160. private void BindMycooperatorClient()
  161. {
  162. TD2.Attributes["background"] = "../../images/maillistbutton2.gif";
  163. TD1.Attributes["background"] = "../../images/maillistbutton1.gif";
  164. pnl_ClientInfo.Visible = false;
  165. pnl.Visible = false;
  166. UDS.Components.CM cm = new  UDS.Components.CM();
  167. DataSet ds = new DataSet();
  168. SqlDataReader dr_Client = cm.GetClientInfoBycooperatorID(Int32.Parse(userid));
  169. DataTable dt_Client = UDS.Components.Tools.ConvertDataReaderToDataTable(dr_Client);
  170. dt_Client.TableName = "Client";
  171. ds.Tables.Add(dt_Client);
  172. SqlDataReader dr_Contact = cm.GetClientContactInfo(0);
  173. DataTable dt_Contact = UDS.Components.Tools.ConvertDataReaderToDataTable(dr_Contact);
  174. dt_Contact.TableName = "Contact";
  175. ds.Tables.Add(dt_Contact);
  176. SqlDataReader dr_Linkman = cm.GetAllLinkman();
  177. DataTable dt_Linkman = UDS.Components.Tools.ConvertDataReaderToDataTable(dr_Linkman);
  178. dt_Linkman.TableName = "Linkman";
  179. ds.Tables.Add(dt_Linkman);
  180. UDS.Components.Staff staff = new UDS.Components.Staff();
  181. SqlDataReader dr_Staff = staff.GetAllStaffs();
  182. DataTable dt_Staff = UDS.Components.Tools.ConvertDataReaderToDataTable(dr_Staff);
  183. dt_Staff.TableName = "Staff";
  184. ds.Tables.Add(dt_Staff);
  185. ds.Relations.Add("ClientAddMan_Staff",ds.Tables["Client"].Columns["AddManID"],ds.Tables["Staff"].Columns["Staff_ID"],false);
  186. ds.Relations.Add("ClientLinkmanID_Linkman",ds.Tables["Client"].Columns["ChiefLinkmanID"],ds.Tables["Linkman"].Columns["ID"],false);
  187. ds.Tables["Client"].DefaultView.Sort = (string)ViewState["SortField"] + " " + ViewState["SortDirect"];
  188. dgd_Client.DataSource = ds.Tables["Client"].DefaultView;
  189. dgd_Client.DataBind();
  190. }
  191. #region Web Form Designer generated code
  192. override protected void OnInit(EventArgs e)
  193. {
  194. //
  195. // CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。
  196. //
  197. InitializeComponent();
  198. base.OnInit(e);
  199. }
  200. /// <summary>
  201. /// 设计器支持所需的方法 - 不要使用代码编辑器修改
  202. /// 此方法的内容。
  203. /// </summary>
  204. private void InitializeComponent()
  205. {    
  206. this.Load += new System.EventHandler(this.Page_Load);
  207. }
  208. #endregion
  209. private void dgd_Client_SortCommand(object source, System.Web.UI.WebControls.DataGridSortCommandEventArgs e)
  210. {
  211. if(ViewState["SortDirect"]!=null)
  212. {
  213. if(ViewState["SortDirect"].ToString()=="DESC")
  214. ViewState["SortDirect"] =  "ASC";
  215. else
  216. ViewState["SortDirect"] =  "DESC";
  217. }
  218. else
  219. ViewState["SortDirect"] =  "ASC";
  220. ViewState["SortField"] = (string)e.SortExpression;
  221. if(ViewState["NowTab"].ToString()=="client")
  222. BindGrid();
  223. else
  224. BindMycooperatorClient();
  225. }
  226. private void dgd_Client_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
  227. {
  228. dgd_Client.CurrentPageIndex = e.NewPageIndex;
  229. if(ViewState["NowTab"].ToString()=="client")
  230. BindGrid();
  231. else
  232. BindMycooperatorClient();
  233. }
  234. private string GetSelectedItemID(string controlID)
  235. {
  236. String selectedID;
  237. selectedID = "";
  238. //遍历DataGrid获得checked的ID
  239. foreach (DataGridItem item in dgd_Client.Items)
  240. {
  241. if(((CheckBox)item.FindControl(controlID)).Checked)
  242. selectedID += item.Cells[1].Text.Trim()+",";
  243. }
  244. if(selectedID!="")
  245. selectedID=selectedID.Substring(0,selectedID.Length-1);
  246. return selectedID;
  247. }
  248. private void btn_AddLinkman_Click(object sender, System.EventArgs e)
  249. {
  250. //遍历datagrid得到选中的最后一个checkbox的id
  251. string selectedstring = GetSelectedItemID("cbx1");
  252. string [] arrselectedstring = selectedstring.Split(',');
  253. string id = arrselectedstring[arrselectedstring.GetLength(0)-1];
  254. Response.Write("<script>javascript:window.open('Linkman.aspx?ClientID="+id+"&from=ClientList','_blank');</script>");
  255. }
  256. private void btn_AddContact_Click(object sender, System.EventArgs e)
  257. {
  258. //遍历datagrid得到选中的最后一个checkbox的id
  259. string selectedstring = GetSelectedItemID("cbx1");
  260. string [] arrselectedstring = selectedstring.Split(',');
  261. string id = arrselectedstring[arrselectedstring.GetLength(0)-1];
  262. Response.Write("<script>javascript:window.open('ClientContact_thisWeek.aspx?ClientID="+id+"','_blank');</script>");
  263. }
  264. private void btn_AddClient_Click(object sender, System.EventArgs e)
  265. {
  266. Response.Write("<script>javascript:window.open('Client.aspx','_blank');</script>");
  267. }
  268. private void btn_Del_Click(object sender, System.EventArgs e)
  269. {
  270. string selectedstring = "";
  271. foreach(DataGridItem dgi in dgd_Client.Items)
  272. {
  273. for(int i=0;i<dgi.Cells[0].Controls.Count;i++)
  274. {
  275. if(dgi.Cells[0].Controls[i].GetType().ToString()=="System.Web.UI.WebControls.CheckBox")
  276. {
  277. if(((CheckBox)dgi.Cells[0].Controls[i]).Checked==true)
  278. {
  279. selectedstring += dgd_Client.DataKeys[dgi.ItemIndex].ToString() + ",";
  280. }
  281. }
  282. }
  283. }
  284. if(selectedstring!="")
  285. {
  286. UDS.Components.CM cm = new UDS.Components.CM();
  287. selectedstring = selectedstring.Substring(0,selectedstring.Length-1);
  288. string[] arrselected = selectedstring.Split(',');
  289. for(int i=0;i<arrselected.Length;i++)
  290. {
  291. if(arrselected[i].Trim()!="")
  292. {
  293. cm.DelClient(Int32.Parse(arrselected[i]));
  294. }
  295. }
  296. }
  297. BindGrid();
  298. }
  299. private void ddl_MySubordinate_SelectedIndexChanged(object sender, System.EventArgs e)
  300. {
  301. if(((DropDownList)sender).SelectedItem.Value==Request.Cookies["UserID"].Value)
  302. {
  303. Session["cm_permission"] = "administrator";
  304. pnl.Visible = true;
  305. pnl_ClientInfo.Visible = true;
  306. }
  307. else
  308. {
  309. Session["cm_permission"] = "leader";
  310. pnl.Visible = false;
  311. pnl_ClientInfo.Visible = false;
  312. }
  313. //改变观察视角
  314. UDS.Components.Staff staff = new UDS.Components.Staff();
  315. userid = ddl_MySubordinate.SelectedItem.Value;
  316. SqlDataReader dr = staff.GetStaffInfo(long.Parse(userid));
  317. while(dr.Read())
  318. {
  319. username = dr["staff_name"].ToString();
  320. }
  321. dr.Close();
  322. ViewState["userid"] = userid;
  323. ViewState["username"] = username;
  324. //重新绑定
  325. if(ViewState["NowTab"].ToString()=="client")
  326. BindGrid();
  327. else
  328. BindMycooperatorClient();
  329. }
  330. private void lbtn_MyClient_Click(object sender, System.EventArgs e)
  331. {
  332. //表示当前用户所在标签
  333. ViewState["NowTab"] = "client";
  334.  
  335. BindGrid();
  336. }
  337. private void lbtn_coClient_Click(object sender, System.EventArgs e)
  338. {
  339. //表示当前用户所在标签
  340. ViewState["NowTab"] = "cooperator";
  341. BindMycooperatorClient();
  342. }
  343. private void dgd_Client_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
  344. {
  345. if(ViewState["NowTab"].ToString()=="cooperator")
  346. {
  347. Control ctl = e.Item.FindControl("hlk_ClientName");
  348. if(e.Item.FindControl("hlk_ClientName")!=null)
  349. ((HyperLink)ctl).Attributes["onclick"] = "alert('你无权查看!');return false;";
  350. }
  351. }
  352. }
  353. }