<%@ Page Language="C#" AutoEventWireup="true" ContentType="text/xml"%>
<%@ Import Namespace="System.Data.SqlClient" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Configuration" %>
<%@ Import Namespace="System.Xml" %>
<script runat="server">
XmlDocument doc;
SqlConnection connection = new SqlConnection("user id=sa;password=sa;initial Catalog=test1;Data Source=localhost;");
private void getRootTask()
{
connection.Open();
string sql = "select * from MSP_Projects where PROJ_ID=1";
SqlCommand command = new SqlCommand(sql,connection);
SqlDataReader reader = command.ExecuteReader();
if (!reader.Read())
{
reader.Close();
connection.Close();
Response.StatusCode = 404;
Response.End();
}
doc=new XmlDocument();
XmlElement taskNode = doc.CreateElement("Task");
root.AppendChild(taskNode);
//
//根节点的UID缺省为0
node = doc.CreateElement("UID");
node.AppendChild(doc.CreateTextNode("0"));
taskNode.AppendChild(node);
//根节点缺省是概要任务
node = doc.CreateElement("Summary");
node.AppendChild(doc.CreateTextNode("1"));
taskNode.AppendChild(node);
String strCond="t.task_outline_num = 1"; CreateTasksNode(doc,strCond,1); Response.ContentType = "text/xml";
Response.Charset = "utf-8";
doc.Save(Response.OutputStream);
Response.End();
doc=null;
}
private void getNextSiblingTask(string strOutlineNumber,int pageindex)
{
XmlDocument doc = new XmlDocument();
//取父任务的大纲级别号
String str = strOutlineNumber.Substring(0, strOutlineNumber.LastIndexOf("."));
String strCond="t.task_outline_num like '" + str + ".%' and t.task_outline_num not like '" + str + ".%.%'";
doc.AppendChild(CreateTasksNode(doc,strCond,pageindex)); Response.ContentType = "text/xml";
Response.Charset = "utf-8";
doc.Save(Response.OutputStream);
Response.End();
doc=null;
}
private XmlElement CreateTasksNode(XmlDocument doc, String strCond,int pageindex)
{
System.Data.SqlClient.SqlDataAdapter myAdapter = new System.Data.SqlClient.SqlDataAdapter(); SqlConnection conn = new SqlConnection("user id=sa;password=sa;initial Catalog=test1;Data Source=localhost;");
//SqlConnection connection = new SqlConnection("user id=sa;password=sa;initial Catalog=test1;Data Source=localhost;");
//pagesize = int.Parse(Request.QueryString["pagesize"]); int pagesize = 5;
//分批下载数据
DataTable dtTask = new DataTable();
String strSql = "SELECT top " + pagesize + " * from msp_tasks t where " + strCond + " and TASK_UID not in(SELECT top " + (pageindex - 1) * pagesize + " TASK_UID from msp_tasks t where " + strCond + ")";
myAdapter.SelectCommand = new System.Data.SqlClient.SqlCommand(strSql, conn);
myAdapter.Fill(dtTask);
DataTable dtLink = new DataTable();
DataView dvLink = dtLink.DefaultView;
//DataRowView drvLink;
strSql = "SELECT * from msp_links l inner join msp_tasks t on l.LINK_SUCC_UID=t.TASK_UID where " + strCond;
myAdapter.SelectCommand = new System.Data.SqlClient.SqlCommand(strSql, conn);
myAdapter.Fill(dtLink);
dvLink.Sort = "LINK_SUCC_UID"; XmlElement tasksNode = doc.CreateElement("Tasks"); XmlElement taskNode, node;
int i=0; foreach (DataRow drTask in dtTask.Rows)
{
i++;
taskNode = doc.CreateElement("Task");
//ChildrenDataUrl
taskNode.SetAttribute("ChildrenDataUrl", "XmlData.aspx?action=getFirstChildTask&OutlineNumber=" + drTask["TASK_OUTLINE_NUM"] + "&pagesize=" + pagesize);
tasksNode.AppendChild(taskNode); node = doc.CreateElement("UID");
node.AppendChild(doc.CreateTextNode(drTask["TASK_UID"].ToString()));
taskNode.AppendChild(node); node = doc.CreateElement("ID");
node.AppendChild(doc.CreateTextNode(drTask["TASK_ID"].ToString()));
taskNode.AppendChild(node); node = doc.CreateElement("Name");
node.AppendChild(doc.CreateTextNode(drTask["TASK_Name"].ToString()));
taskNode.AppendChild(node); node = doc.CreateElement("OutlineNumber");
node.AppendChild(doc.CreateTextNode(drTask["TASK_OUTLINE_NUM"].ToString()));
taskNode.AppendChild(node); node = doc.CreateElement("Start");
node.AppendChild(doc.CreateTextNode(string.Format("{0:s}", drTask["TASK_START_DATE"])));
taskNode.AppendChild(node); node = doc.CreateElement("Finish");
node.AppendChild(doc.CreateTextNode(string.Format("{0:s}", drTask["TASK_FINISH_DATE"])));
taskNode.AppendChild(node); node = doc.CreateElement("TASK_LATE_START");
node.AppendChild(doc.CreateTextNode(string.Format("{0:s}", drTask["TASK_LATE_START"])));
taskNode.AppendChild(node); node = doc.CreateElement("Summary");
node.AppendChild(doc.CreateTextNode(((bool)drTask["TASK_IS_SUMMARY"] ? "1" : "0")));
taskNode.AppendChild(node);
node = doc.CreateElement("PercentComplete");
node.AppendChild(doc.CreateTextNode(drTask["TASK_PCT_COMP"].ToString()));
taskNode.AppendChild(node);
XmlElement linksNode = doc.CreateElement("Links");
taskNode.AppendChild(linksNode);
foreach (DataRowView drvLink in dvLink.FindRows(drTask["TASK_UID"]))
{
XmlElement predLink = doc.CreateElement("PredecessorLink");
linksNode.AppendChild(predLink);
node = doc.CreateElement("PredecessorUID");
node.AppendChild(doc.CreateTextNode(drvLink["LINK_PRED_UID"].ToString()));
predLink.AppendChild(node);
node = doc.CreateElement("Type");
node.AppendChild(doc.CreateTextNode(drvLink["LINK_TYPE"].ToString()));
predLink.AppendChild(node); } //如果已经到了指定页面大小
if (i == pagesize )
{
taskNode.SetAttribute("NextSiblingDataUrl", "XmlData.aspx?action=getNextSiblingTask&OutlineNumber=" + drTask["TASK_OUTLINE_NUM"] + "&pagesize=" + pagesize + "&pageindex=" + (pageindex + 1));//设置分页下载
break;
}
} dtTask.Dispose();
//dtLink.Dispose();
myAdapter.Dispose(); return tasksNode;
}
</script>
<%@ Import Namespace="System.Data.SqlClient" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Configuration" %>
<%@ Import Namespace="System.Xml" %>
<script runat="server">
XmlDocument doc;
SqlConnection connection = new SqlConnection("user id=sa;password=sa;initial Catalog=test1;Data Source=localhost;");
private void getRootTask()
{
connection.Open();
string sql = "select * from MSP_Projects where PROJ_ID=1";
SqlCommand command = new SqlCommand(sql,connection);
SqlDataReader reader = command.ExecuteReader();
if (!reader.Read())
{
reader.Close();
connection.Close();
Response.StatusCode = 404;
Response.End();
}
doc=new XmlDocument();
XmlElement taskNode = doc.CreateElement("Task");
root.AppendChild(taskNode);
//
//根节点的UID缺省为0
node = doc.CreateElement("UID");
node.AppendChild(doc.CreateTextNode("0"));
taskNode.AppendChild(node);
//根节点缺省是概要任务
node = doc.CreateElement("Summary");
node.AppendChild(doc.CreateTextNode("1"));
taskNode.AppendChild(node);
String strCond="t.task_outline_num = 1"; CreateTasksNode(doc,strCond,1); Response.ContentType = "text/xml";
Response.Charset = "utf-8";
doc.Save(Response.OutputStream);
Response.End();
doc=null;
}
private void getNextSiblingTask(string strOutlineNumber,int pageindex)
{
XmlDocument doc = new XmlDocument();
//取父任务的大纲级别号
String str = strOutlineNumber.Substring(0, strOutlineNumber.LastIndexOf("."));
String strCond="t.task_outline_num like '" + str + ".%' and t.task_outline_num not like '" + str + ".%.%'";
doc.AppendChild(CreateTasksNode(doc,strCond,pageindex)); Response.ContentType = "text/xml";
Response.Charset = "utf-8";
doc.Save(Response.OutputStream);
Response.End();
doc=null;
}
private XmlElement CreateTasksNode(XmlDocument doc, String strCond,int pageindex)
{
System.Data.SqlClient.SqlDataAdapter myAdapter = new System.Data.SqlClient.SqlDataAdapter(); SqlConnection conn = new SqlConnection("user id=sa;password=sa;initial Catalog=test1;Data Source=localhost;");
//SqlConnection connection = new SqlConnection("user id=sa;password=sa;initial Catalog=test1;Data Source=localhost;");
//pagesize = int.Parse(Request.QueryString["pagesize"]); int pagesize = 5;
//分批下载数据
DataTable dtTask = new DataTable();
String strSql = "SELECT top " + pagesize + " * from msp_tasks t where " + strCond + " and TASK_UID not in(SELECT top " + (pageindex - 1) * pagesize + " TASK_UID from msp_tasks t where " + strCond + ")";
myAdapter.SelectCommand = new System.Data.SqlClient.SqlCommand(strSql, conn);
myAdapter.Fill(dtTask);
DataTable dtLink = new DataTable();
DataView dvLink = dtLink.DefaultView;
//DataRowView drvLink;
strSql = "SELECT * from msp_links l inner join msp_tasks t on l.LINK_SUCC_UID=t.TASK_UID where " + strCond;
myAdapter.SelectCommand = new System.Data.SqlClient.SqlCommand(strSql, conn);
myAdapter.Fill(dtLink);
dvLink.Sort = "LINK_SUCC_UID"; XmlElement tasksNode = doc.CreateElement("Tasks"); XmlElement taskNode, node;
int i=0; foreach (DataRow drTask in dtTask.Rows)
{
i++;
taskNode = doc.CreateElement("Task");
//ChildrenDataUrl
taskNode.SetAttribute("ChildrenDataUrl", "XmlData.aspx?action=getFirstChildTask&OutlineNumber=" + drTask["TASK_OUTLINE_NUM"] + "&pagesize=" + pagesize);
tasksNode.AppendChild(taskNode); node = doc.CreateElement("UID");
node.AppendChild(doc.CreateTextNode(drTask["TASK_UID"].ToString()));
taskNode.AppendChild(node); node = doc.CreateElement("ID");
node.AppendChild(doc.CreateTextNode(drTask["TASK_ID"].ToString()));
taskNode.AppendChild(node); node = doc.CreateElement("Name");
node.AppendChild(doc.CreateTextNode(drTask["TASK_Name"].ToString()));
taskNode.AppendChild(node); node = doc.CreateElement("OutlineNumber");
node.AppendChild(doc.CreateTextNode(drTask["TASK_OUTLINE_NUM"].ToString()));
taskNode.AppendChild(node); node = doc.CreateElement("Start");
node.AppendChild(doc.CreateTextNode(string.Format("{0:s}", drTask["TASK_START_DATE"])));
taskNode.AppendChild(node); node = doc.CreateElement("Finish");
node.AppendChild(doc.CreateTextNode(string.Format("{0:s}", drTask["TASK_FINISH_DATE"])));
taskNode.AppendChild(node); node = doc.CreateElement("TASK_LATE_START");
node.AppendChild(doc.CreateTextNode(string.Format("{0:s}", drTask["TASK_LATE_START"])));
taskNode.AppendChild(node); node = doc.CreateElement("Summary");
node.AppendChild(doc.CreateTextNode(((bool)drTask["TASK_IS_SUMMARY"] ? "1" : "0")));
taskNode.AppendChild(node);
node = doc.CreateElement("PercentComplete");
node.AppendChild(doc.CreateTextNode(drTask["TASK_PCT_COMP"].ToString()));
taskNode.AppendChild(node);
XmlElement linksNode = doc.CreateElement("Links");
taskNode.AppendChild(linksNode);
foreach (DataRowView drvLink in dvLink.FindRows(drTask["TASK_UID"]))
{
XmlElement predLink = doc.CreateElement("PredecessorLink");
linksNode.AppendChild(predLink);
node = doc.CreateElement("PredecessorUID");
node.AppendChild(doc.CreateTextNode(drvLink["LINK_PRED_UID"].ToString()));
predLink.AppendChild(node);
node = doc.CreateElement("Type");
node.AppendChild(doc.CreateTextNode(drvLink["LINK_TYPE"].ToString()));
predLink.AppendChild(node); } //如果已经到了指定页面大小
if (i == pagesize )
{
taskNode.SetAttribute("NextSiblingDataUrl", "XmlData.aspx?action=getNextSiblingTask&OutlineNumber=" + drTask["TASK_OUTLINE_NUM"] + "&pagesize=" + pagesize + "&pageindex=" + (pageindex + 1));//设置分页下载
break;
}
} dtTask.Dispose();
//dtLink.Dispose();
myAdapter.Dispose(); return tasksNode;
}
</script>
解决方案 »
- 编译器错误信息:bc30456:"initializeculture"不是"asp.default_as px"的成员。
- DataGridView 底部添加合计行后,怎样才能使垂直滚动条滚动到最后时,最后一行不被合计行遮挡?
- 关于清楚控件值
- 怎么把网站上的图片取出来,知道其在网页中的位置
- 自定义的控件读取数据失败你怎么处理?
- 如何去除数值字符串后面 0 ?
- .net framework sp1问题
- 求助,两个int数组之间的运算
- 为什么电脑必需连接上网线才能接连数据库?
- 【请问】怎样以自定义的structure结构读写文件?
- 这样的XML如何读取和写入
- 该用户与可信任的 SQL SEVER 无关联
XmlElement taskNode = doc.CreateElement("Task");
root.AppendChild(taskNode);root是哪里来的?
doc.AppendChild这个东东。
在getNextSiblingTask方法里getNextSiblingTask什么时候调用的?
{
taskNode.SetAttribute("NextSiblingDataUrl", "XmlData.aspx?action=getNextSiblingTask&OutlineNumber=" + drTask["TASK_OUTLINE_NUM"] + "&pagesize=" + pagesize + "&pageindex=" + (pageindex + 1));//设置分页下载
break;
}在这里调用的getNextSiblingTask,是不是不对啊?
这不是调用方法,是给taskNode节点的NextSiblingDataUrl属性赋值。
具体在哪里调用CreateTasksNode ,getNextSiblingTask 和你的网页操作流程相关。