ClientLinkmanList.aspx.cs
上传用户:cha0314
上传日期:2014-03-02
资源大小:12522k
文件大小:5k
源码类别:

C#编程

开发平台:

C#

  1. using System;
  2. using System.Text.RegularExpressions;
  3. using System.Collections;
  4. using System.ComponentModel;
  5. using System.Data;
  6. using System.Data.SqlClient;
  7. using System.Drawing;
  8. using System.Web;
  9. using System.Web.SessionState;
  10. using System.Web.UI;
  11. using System.Web.UI.WebControls;
  12. using System.Web.UI.HtmlControls;
  13. using UDS.Components;
  14. namespace UDS.SubModule.CM
  15. {
  16. /// <summary>
  17. /// ClinetLinkmanList 的摘要说明。
  18. /// </summary>
  19. public class ClinetLinkmanList : System.Web.UI.Page
  20. {
  21. protected System.Web.UI.WebControls.HyperLink HyperLink1;
  22. protected System.Web.UI.WebControls.RadioButtonList rbl_LinkmanList;
  23. protected System.Web.UI.WebControls.Button btn_OK;
  24. protected  int clientid;
  25. private void Page_Load(object sender, System.EventArgs e)
  26. {
  27. // 在此处放置用户代码以初始化页面
  28. if(!Page.IsPostBack)
  29. {
  30. BindData();
  31. if(Session["cm_permission"].ToString()=="leader")
  32. {
  33. HyperLink1.Visible = false;
  34. btn_OK.Visible = false;
  35. }
  36. else
  37. {
  38. HyperLink1.Visible = true;
  39. btn_OK.Visible = true;
  40. }
  41. HyperLink1.NavigateUrl = "Linkman.aspx?ClientID=" + clientid.ToString();
  42. }
  43. }
  44. private void BindData()
  45. {
  46. UDS.Components.CM cm = new UDS.Components.CM();
  47. UDS.Components.ClientInfo client = new UDS.Components.ClientInfo();
  48. SqlDataReader dr = null;
  49. clientid = ((Request.Params["clientid"]==null)||(Request.Params["clientid"].ToString().Trim()==""))?0:Int32.Parse(Request.Params["clientid"]);
  50. if(clientid!=0)
  51. {
  52. dr = cm.GetLinkmanFromClient(clientid);
  53. client = cm.GetClientAllInfo(clientid);
  54. }
  55. else //如果没有传入clientid那么检查是否有临时linkman
  56. {
  57. string linkmanstring = (Session["tmplinkmanid"]==null)?"0":Session["tmplinkmanid"].ToString();
  58. if(linkmanstring.EndsWith(","))
  59. linkmanstring = linkmanstring.Substring(0,linkmanstring.Length-1);
  60. dr = cm.GetLinkmanByID(linkmanstring);
  61. }
  62. // rbl_LinkmanList.DataSource = dr;
  63. // rbl_LinkmanList.DataTextField = "Name";
  64. // rbl_LinkmanList.DataValueField = "id";
  65. // rbl_LinkmanList.DataBind();
  66. while(dr.Read())
  67. {
  68. ListItem li = new ListItem();
  69. if(Session["cm_permission"].ToString()=="administrator")
  70. li.Text = "<a href='Linkman.aspx?LinkmanID="+dr["ID"].ToString()+"'>"+dr["Name"].ToString()+"</a>";
  71. else
  72. li.Text = dr["Name"].ToString();
  73. li.Value = dr["ID"].ToString();
  74. rbl_LinkmanList.Items.Add(li);
  75. }
  76. dr.Close();
  77. //如果临时主要联系人存在则让它处于选中状态
  78. if(Session["tmpchief"]!=null)
  79. {
  80. //找到tmpchief的index值并让它处于选中状态
  81. foreach(ListItem lt in rbl_LinkmanList.Items)
  82. {
  83. if(lt.Value == Session["tmpchief"].ToString())
  84. lt.Selected = true;
  85. }
  86. }
  87. else
  88. {
  89. foreach(ListItem lt in rbl_LinkmanList.Items)
  90. {
  91. if(lt.Value == client.ChiefLinkmanID.ToString())
  92. lt.Selected = true;
  93. }
  94. }
  95. }
  96. #region Web Form Designer generated code
  97. override protected void OnInit(EventArgs e)
  98. {
  99. //
  100. // CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。
  101. //
  102. InitializeComponent();
  103. base.OnInit(e);
  104. }
  105. /// <summary>
  106. /// 设计器支持所需的方法 - 不要使用代码编辑器修改
  107. /// 此方法的内容。
  108. /// </summary>
  109. private void InitializeComponent()
  110. {    
  111. this.btn_OK.Click += new System.EventHandler(this.btn_OK_Click);
  112. this.Load += new System.EventHandler(this.Page_Load);
  113. }
  114. #endregion
  115. private void btn_OK_Click(object sender, System.EventArgs e)
  116. {
  117. Session["tmpchief"] = rbl_LinkmanList.SelectedItem.Value;
  118. UDS.Components.CM cm = new UDS.Components.CM();
  119. SqlDataReader dr = cm.GetLinkmanByID(rbl_LinkmanList.SelectedItem.Value);
  120. while(dr.Read())
  121. {
  122. //使用正则表达式分析 <a ....>....</a>得到各个属性值
  123. string href = "";
  124. string name = "";
  125. string linkstring = @rbl_LinkmanList.SelectedItem.Text;
  126. string pattern = "href\s*=\s*((?<begin>('|"))(?<href>.*?)\k<begin>|(?<href>\S+))(.*?)>(?<name>.*?)</a>";
  127. Match match;
  128. Regex thereg = new Regex(pattern,RegexOptions.IgnoreCase|RegexOptions.Compiled);
  129. for(match=thereg.Match(linkstring);match.Success;match=match.NextMatch())
  130. {
  131. href = match.Groups["href"].Value;
  132. name = match.Groups["name"].Value;
  133. }
  134. Response.Write("<script>opener.document.getElementById('hlk_Chiefman').href="" + href + "";opener.document.getElementById('hlk_Chiefman').innerText = "" + name + ""</script>");
  135. Response.Write("<script>opener.document.getElementById('lbl_position').innerText='" + dr["position"] + "';opener.document.getElementById('lbl_chieftel').innerText='" + dr["telephone"] + "';</script>");
  136. }
  137. dr.Close();
  138. Response.Write("<script>window.close();</script>");
  139. }
  140. }
  141. }