项目技术总结:
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;
}
}