上一篇博客中有些没有考虑到的东西这次更改一下代码如下:
界面前台:
<%@ Page Language=\"C#\" AutoEventWireup=\"true\" CodeBehind=\"AdmShowDIV.aspx.cs\" Inherits=\"ExamSystemV3.Manager.RoleManager.AdmShowDIV\" %>
<!DOCTYPE html>
<html xmlns=\"http://www.w3.org/1999/xhtml\">
<head runat=\"server\">
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />
<meta name=\"Author\" content=\"kudychen@gmail.com\" />
<meta http-equiv=\"X-UA-Compatible\" content=\"IE=EmulateIE7\" />
<title></title>
<script src=\"../../js/DIV/jquery.js\" type=\"text/javascript\"></script>
<script src=\"../../js/DIV/DIV.js\" type=\"text/ecmascript\"></script>
<link href=\"../../css/admin.global.css\" rel=\"stylesheet\" type=\"text/css\" />
<link href=\"../../css/admin.content.css\" rel=\"stylesheet\" type=\"text/css\" />
<script type=\"text/javascript\" src=\"../../../js/jquery.easyui.min.js\"></script>
<script type=\"text/javascript\" src=\"../../js/jquery-1.4.2.min.js\"></script>
<script type=\"text/javascript\" src=\"../../js/jquery.utils.js\"></script>
<link href=\"../../jBox/Skins/Green/jbox.css\" rel=\"stylesheet\" type=\"text/css\" />
<script type=\"text/javascript\" src=\"../../jBox/jquery.jBox-2.3.min.js\"></script>
<script type=\"text/javascript\" src=\"../../js/admin.js\"></script>
<script type=\"text/javascript\" src=\"../../js/SimpleTree.js\"></script>
</head>
<body>
<form id=\"form1\" runat=\"server\">
<div class=\"container\">
<div class=\"location\">当前位置:界面元素管理 -> 查看界面元素</div>
<div class=\"blank10\"></div>
<div class=\"search block\">
<div class=\"h\">
<span class=\"icon-sprite icon-magnifier\"></span>
<h3>快速搜索</h3>
</div>
<div class=\"tl corner\"></div><div class=\"tr corner\"></div><div class=\"bl corner\"></div><div class=\"br corner\"></div>
<div class=\"cnt-wp\">
<div class=\"cnt\">
<div class=\"search-bar\" id=\"SelectRole\">
<label class=\"txt-green\">请选择界面:</label>
<asp:DropDownList ID=\"DdlWindowsName\" runat=\"server\" AutoPostBack=\"True\" OnSelectedIndexChanged=\"DdlWindowsName_SelectedIndexChanged\">
</asp:DropDownList>
<a class=\"btn-lit\" href=\"#\" onclick=\"WindowsInfo()\"><span>扫描界面信息</span></a>
</div>
</div>
</div>
</div>
</div>
<div class=\"block\">
<div class=\"h\">
<span class=\"icon-sprite icon-list\"></span>
<h3>界面详情</h3>
</div>
<div class=\"tl corner\"></div>
<div class=\"tr corner\"></div>
<div class=\"bl corner\"></div>
<div class=\"br corner\"></div>
<div class=\"cnt-wp\">
<div class=\"cnt\">
<iframe id=\"frmWindows\" runat=\"server\" frameborder=\"0\" marginheight=\"0\" marginwidth=\"0\" scrolling=\"auto\" style=\" display: inline; height: 400px;\" width=\"75%\" ></iframe>
<iframe id=\"frmUpdateDIV\" runat=\"server\" frameborder=\"0\" marginheight=\"0\" marginwidth=\"0\" scrolling=\"auto\" style=\"display: inline; height: 400px; width: 24%;\"></iframe>
</div>
</div>
</div>
</form>
</body>
</html>
界面后台:
using BLL.Manager.RoleUserManagerBLL;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace ExamSystemV3.Manager.RoleManager
{
public partial class AdmShowDIV : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string strLike=\"\";
if (!IsPostBack)
{
//绑定界面
DataBindWindows(strLike);
}
}
/// <summary>
/// 绑定所有界面
/// </summary>
/// <param name=\"strLike\"></param>
public void DataBindWindows(string strLike)
{
DataTable dt = new DataTable();
AdmWindowsManager admWindowsManager = new AdmWindowsManager();
//查出所有的界面
dt = admWindowsManager.QueryWindowInfo(strLike);
//绑定界面信息
DdlWindowsName.DataSource = dt;
DdlWindowsName.DataValueField = \"Id\";
DdlWindowsName.DataTextField = \"WindowsName\";
DdlWindowsName.DataBind();
}
protected void DdlWindowsName_SelectedIndexChanged(object sender, EventArgs e)
{
DataTable dt = new DataTable();
string strLike = \"\";
AdmWindowsManager admWindowsManager = new AdmWindowsManager();
//查出界面的信息
dt = admWindowsManager.QueryWindowInfo(strLike);
string strWindowsId=DdlWindowsName.SelectedValue.ToString().Trim();
strLike = \"Id=\'\"+strWindowsId+\"\'\";
DataRow[] rows =dt.Select (strLike);
//获得路径
string strURL = rows[0][\"WindowsURL\"].ToString ();
strURL = \"../../\" + strURL;
frmWindows.Attributes[\"src\"]=strURL;
frmUpdateDIV.Attributes[\"src\"] = \"AdmUpdateDIV.aspx?WindowsID=\'\" + strWindowsId + \"\'\";
}
}
}
JS:
var WindowsID;
function WindowsInfo() {
//获取ifrm
var frmWindows = document.getElementById(\"frmWindows\").contentWindow;
//获取界面ID
WindowsID = document.getElementById(\"DdlWindowsName\").value;
var rootboxs = frmWindows.document.getElementById(\"main\");
var child = rootboxs.childNodes;
findchildbox(child);
};
//搜寻子节点
function findchildbox(parentNode) {
for (var i = 0; i < parentNode.length; i++) {
if (parentNode[i].nodeName == \"BOX\") {
var childboxId = parentNode[i].id;
var childboxTitle = encodeURI(parentNode[i].title);
var parentbox = findparentbox(parentNode[i].parentNode);
var parentboxId = parentbox.id;
if (window.XMLHttpRequest) {
//IE7 above,firefox,chrome^^
xmlhttp = new XMLHttpRequest();
//为了兼容部分Mozillar浏览器,当来自服务器响应开头不是xml,导致的无法响应问题
if (xmlhttp.overrideMimeType) {
xmlhttp.overrideMimeType(\'text/xml\');
}
}
else if (window.ActiveXObject) {
//IE5\\IE6
xmlhttp = new activeXObject(\"Microsoft.XMLHTTP\");
}
if (xmlhttp == null || xmlhttp == undefined) {
alert(\"con\'t create XMLHttpRequest Object\");
}
////注册回调函数
//xmlhttp.onreadystatechange = callback;
//发送信息
xmlhttp.open(\'GET\', \'../../Manager/RoleManager/AddBox.ashx?childboxId=\' + childboxId + \'&childboxTitle=\' + childboxTitle + \'&parentboxId=\' + parentboxId+\'&windowsId=\'+WindowsID, true);
xmlhttp.send(null);
//function callback() {
// //判断交互是否完成,是否正确返回
// if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
// }
//}
}
findchildbox(parentNode[i].childNodes)
}
}
//查询父节点
function findparentbox(child) {
if (child.nodeName == \"BOX\") {
return child;
} else {
return findparentbox(child.parentNode)
}
}
一般处理程序:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using BLL.Manager.RoleUserManagerBLL;
using System.Data;
using System.Text;
using Model;
using BLL;
namespace ExamSystemV3.Manager.RoleManager
{
/// <summary>
/// AddBox 的摘要说明
/// </summary>
public class AddBox : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = \"text/plain\";
System.Threading.Thread.Sleep(1000);
DIVEntity EDiv = new DIVEntity();
TR_WindowsDIVEntity EWindowsDiv = new TR_WindowsDIVEntity();
AdmDIVManager admDIVManager = new AdmDIVManager();
PublicBLL publicBll = new PublicBLL();
///收集信息
string strChildBoxId = \"\";
string strChildBoxTitle = \"\";
strChildBoxId = context.Request.QueryString[\"childboxId\"].ToString().Trim();
strChildBoxTitle = context.Server.UrlDecode(context.Request.QueryString[\"childboxTitle\"].ToString().Trim());
string strWindowsId = context.Request.QueryString[\"windowsId\"].ToString().Trim();
string strParentBoxId=context.Request.QueryString[\"parentboxId\"].ToString ().Trim();;
string strState = \"是\";
string strDateTime = publicBll.GetDate();
string strIP = publicBll.GetWebClientIp();
string strOperator =\"xvshu\";//context.Session[\"UserNo\"].ToString().Trim(); ;
//给实体类赋值
EDiv.Id = strChildBoxId;
EDiv.MainRelation = strParentBoxId;
EDiv.DIVName = strChildBoxTitle;
EDiv.DIVDescribe = strChildBoxTitle;
EDiv.Operator = strOperator;
EDiv.OperatorIP = strIP;
EDiv.State = strState;
EDiv.DateTime = strDateTime;
//给WindowsDIV实体类赋值
EWindowsDiv.DIVID = strChildBoxId;
EWindowsDiv.WindowsID = strWindowsId;
EWindowsDiv.IsVisible = \"是\";
EWindowsDiv.Operator = strOperator;
EWindowsDiv.OperatorIP = strIP;
EWindowsDiv.DateTime = strDateTime;
//添加DIV
admDIVManager.AddDIV(EDiv,EWindowsDiv);
}
public bool IsReusable
{
get
{
return false;
}
}
}
}