項目技術總結: 1,模式窗體: 1)父窗體代碼: function GetStaffID() { r = window.showModalDialog('ShowStaffList.aspx?tenatID=<%= ViewState["TenantID"].ToString() %>&roleid=<%= ViewState["RoleId"].ToString() %>','','dialogWidth=50;dialogHeight=20;resizable=Yes;scroll=Yes;status=no'); if(typeof(r) != 'undefined') { var arraylist = r.split(','); var dataId = '';//儲存全部ID的變量 var dataName ='';//儲存全部名稱的變量 //臨時數組 var a; for(i=0;i<arraylist.length;i++) { a = arraylist[i].split('|'); if(dataId == '') dataId += a[1]; else dataId += "," + a[1]; if(dataName == '') dataName += a[2]; else dataName += "," + a[2]; } } document.getElementById('HIdstaffid').value =dataId; 2)子窗體代碼: <script language="javascript" type="text/javascript"> var ReturnValue = ''; function AllChoose() { //清空數據集 ReturnValue = ''; //從新累加 var ck = document.getElementsByTagName('input'); for(i = 0; i < ck.length; i++) { if(ck[i].type == 'checkbox' && ck[i].checked && ck[i].name!='chkAll') { if(ReturnValue == '') ReturnValue += ck[i].id + "|" + ck[i].value; else ReturnValue += "," + ck[i].id + "|" + ck[i].value; } } } function Save() { AllChoose(); if(ReturnValue == '') alert('請選擇!'); else { window.parent.returnValue = ReturnValue; window.parent.close(); } } function checkAllChoose() { var chall=document.getElementsByTagName("input"); var alls=document.getElementById("chkAll"); for(var i=0;i<chall.length;i++) { if(chall[i].type=="checkbox") { if(alls.checked) { chall[i].checked=true; } else { chall[i].checked=false; } } } } </script> 2,生成樹 數據庫中有MenuPos列,父節點爲A時子節點爲AA /// <summary> /// 初始化樹 /// </summary> public void CreateOperationTree() { int iLevel0, iLevel1; DataSet ds = new DataSet(); TreeNode tempTreeNode = new TreeNode(); bc.ALLSYSMENU("", -1, out ds); if (ds.Tables[0].Rows[0][0].ToString() == "0") { tvFunc.Nodes.Clear(); iLevel0 = 1; foreach (DataRow dr in ds.Tables[1].Rows) { iLevel1 = Convert.ToString(dr["MenuPos"]).Length; if (iLevel1 == 0) { continue; } //給節點賦值 TreeNode addTreeNode = new TreeNode(Convert.ToString(dr["MenuName"]));//菜單名稱 //addTreeNode.Target = "right"; addTreeNode.Value = dr["MenuId"].ToString();//菜單的ID //頂級樹 if (iLevel1 == 1) { tvFunc.Nodes.Add(addTreeNode); tempTreeNode = addTreeNode; } else { for (int i = 0; i < (iLevel0 - iLevel1 + 1); i++)//回到上一級 tempTreeNode = tempTreeNode.Parent; if (tempTreeNode != null) tempTreeNode.ChildNodes.Add(addTreeNode); tempTreeNode = addTreeNode; } tempTreeNode = addTreeNode; tempTreeNode.Expanded = false; iLevel0 = iLevel1; } } } 3,框架 使用框架能夠得到選擇的值,與模式窗體不一樣的是能夠分頁 頁面中代碼: javascript中的代碼爲: <script type="text/javascript" language="javascript"> function showiframe() { document.getElementById("proj").src="getAllBussines.aspx?tenantid=<%=zuhu%>"; } </script> aspx中代碼: <iframe id ="proj" name="proj" width="100%" height="100%" hspace="0" vspace="0" marginHeight="0" frameBorder="0" scrolling="auto" > </iframe> 框架中鏈接出的值: 子頁面中javascript代碼: <script language="javascript" type="text/javascript"> var ReturnValue = ''; function AllChoose() { //清空數據集 ReturnValue = ''; //從新累加 var ck = document.getElementsByTagName('input'); for(i = 0; i < ck.length; i++) { if(ck[i].type == 'radio' && ck[i].checked && ck[i].name!='chkAll') { if(ReturnValue == '') ReturnValue += ck[i].id + "|" + ck[i].value; else ReturnValue += "," + ck[i].id + "|" + ck[i].value; } } } function Save() { AllChoose(); if(ReturnValue == '') alert('請選擇!'); else { var arraylist = ReturnValue.split(','); var dataId = '';//儲存全部ID的變量 var dataName ='';//儲存全部名稱的變量 //臨時數組 var a; for(i=0;i<arraylist.length;i++) { a = arraylist[i].split('|'); if(dataId == '') dataId += a[1]; else dataId += "," + a[1]; if(dataName == '') dataName += a[2]; else dataName += "," + a[2]; } parent.document.getElementById("hfMerchant").value=dataId; parent.document.getElementById("txtMerchant1").value=dataName; window.close(); } } </script> 子頁面中代碼: <asp:Button ID="btnSure" runat="server" Text="肯定" OnClientClick="Save()" /> 4,打印,批量打印 點擊打印後打印一張傳真: protected void btnPrint_Click1(object sender, EventArgs e) { try { System.Drawing.Printing.PrintDocument _document = new System.Drawing.Printing.PrintDocument(); _document.PrintPage += new System.Drawing.Printing.PrintPageEventHandler(_document_printpage); _document.Print(); } catch(Exception ex) { ErrorLog.WriteLog(ex); } } void _document_printpage(object sender, System.Drawing.Printing.PrintPageEventArgs e) { string filepath = Server.MapPath("~/FAX/tiff") + "\\" + hidname.Value; e.Graphics.DrawImage(System.Drawing.Image.FromFile(@"" + filepath + ""), 0, 0); ScriptManager.RegisterClientScriptBlock(this, GetType(), "click", "alert('打印成功')", true); } 批量打印: /// <summary> /// 批量打印傳真 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void btnSubmit_Click(object sender, EventArgs e) { string[] requstcom = Request.Form["chkbox"].Split(','); System.Drawing.Printing.PrintDocument _document = new System.Drawing.Printing.PrintDocument(); for (int i = 0; i < requstcom.Length; i++) { faxfileName = requstcom[i]; _document.PrintPage += new System.Drawing.Printing.PrintPageEventHandler(_document_printpage); _document.Print(); Thread.Sleep(3000); } } void _document_printpage(object sender,System.Drawing.Printing.PrintPageEventArgs e) { string filepath = Server.MapPath("~/FAX/tiff") + "\\" + faxfileName; e.Graphics.DrawImage(System.Drawing.Image.FromFile(@"" + filepath + ""), 0, 0); } 5,生成樹 public void CreateOperationTree(TreeView treeView) { int iLevel0, iLevel1; TreeNode tempTreeNode = new TreeNode(); DataSet ds = new DataSet(); DataSet dt = new DataSet(); string Staffid = ""; string popedom = ""; string MenuId = ""; //執行查詢員工權限樹函數 if (GetOperId() != "") { Staffid = GetOperId(); DataSet dsTanant; bc.tenantstafflist("", "", Staffid, "", out dsTanant); treeView.Nodes.Clear(); for (int tem = 0; tem < dsTanant.Tables[1].Rows.Count; tem++) { popedom = ""; TreeNode ZuhuTreeNode = new TreeNode();//菜單名稱 ZuhuTreeNode.Target = "right"; ZuhuTreeNode.Value = dsTanant.Tables[1].Rows[tem]["name"].ToString();//菜單的ID treeView.Nodes.Add(ZuhuTreeNode);//添加租戶菜單 ZuhuTreeNode.SelectAction = TreeNodeSelectAction.Expand; //爲每一個租戶添加系統菜單 bc.QUERYALLSYSMENU(Staffid, dsTanant.Tables[1].Rows[tem]["companycode"].ToString(), out ds); //查詢員工在該租戶下的因此菜單 foreach (DataRow dw in ds.Tables[1].Rows) { popedom += "{" + dw["MenuId"].ToString() + "}"; } //查找到全部菜單 bc.ALLSYSMENU("", -1, out dt); if (ds.Tables[0].Rows[0][0].ToString() == "0") { iLevel0 = 1; foreach (DataRow dr in dt.Tables[1].Rows) { MenuId = dr["MenuId"].ToString(); if (popedom.IndexOf("{" + MenuId + "}") >= 0) { iLevel1 = Convert.ToString(dr["MenuPos"]).Length; if (iLevel1 == 0) { continue; } //給節點賦值 TreeNode addTreeNode = new TreeNode(Convert.ToString(dr["MenuName"]));//菜單名稱 addTreeNode.Target = "frmright"; addTreeNode.Value = dr["MenuId"].ToString();//菜單的ID if (dr["AspName"].ToString() != "") { if (Convert.ToString(dr["AspName"]).Contains("?")) { addTreeNode.NavigateUrl = Convert.ToString(dr["AspName"]) + "&tenantid=" + dsTanant.Tables[1].Rows[tem]["companycode"].ToString()+"&ID="+Staffid+"";//菜單鏈接的地址 } else { addTreeNode.NavigateUrl = Convert.ToString(dr["AspName"]) + "?tenantid=" + dsTanant.Tables[1].Rows[tem]["companycode"].ToString() + "&ID=" + Staffid + "";//菜單鏈接的地址 } } //頂級樹 if (iLevel1 == 1) { //treeView.Nodes.Add(addTreeNode); ZuhuTreeNode.ChildNodes.Add(addTreeNode); tempTreeNode = addTreeNode; addTreeNode.SelectAction = TreeNodeSelectAction.Expand; } else { for (int i = 0; i < (iLevel0 - iLevel1 + 1); i++)//回到上一級 tempTreeNode = tempTreeNode.Parent; if (tempTreeNode != null) tempTreeNode.ChildNodes.Add(addTreeNode); tempTreeNode = addTreeNode; } iLevel0 = iLevel1; } } treeView.CollapseAll(); } } } } 6,javascript中按enter鍵等於點搜索鍵 function document.onkeydown() { var e=event.srcElement; if(event.keyCode==13) { document.getElementById("btnSearch").click(); return false; } }