項目技術總結:
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;
}
}
項目總結
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
編寫自適應高度的 textarea
CarterLi
2019-02-25 00:14:46
node遇上c++ --- 愛情來的太快(一) (沒有文章)
sewerganger
2019-02-24 22:55:07
進擊webpack4 (基礎篇二:配置)
槐破夢
2019-02-24 22:55:07
《劍指offer》分解讓複雜問題更簡單
ConardLi
2019-02-24 22:55:07
ggit (git gui) --- 開發記錄 (一)
sewerganger
2019-02-24 22:45:04
搞搞, 超星爾雅;
sewerganger
2019-02-24 22:44:54
近期前端發展計劃
Ashleysweetie
2019-02-24 22:32:41
JS module的導出和導入
KevinYan
2019-02-24 21:34:55
「前端面試題系列7」Javascript 中的事件機制(從原生到框架)
micherwa
2019-02-24 19:55:05
JS面試題之比較兩個對象是否相等?
幸福村的碼農
2019-02-24 17:35:07
JavaScript:函數防抖與函數節流
沉靜地閃光
2019-02-24 17:35:07
超級詳細的手寫webpack4配置來啓動vue2項目(附配置作用)
Sotyoyo
2019-02-24 16:44:37
QQ音樂播放地址api
要學習資料找我
2019-02-24 16:32:45
通信類
Ashleysweetie
2019-02-24 16:25:14