日前,小弟去一公司面试,遇到一问题,实在做不出来,十分郁闷,特来此想众高手请教。
首先是,做一个WEBSERVISE,既WEB服务,连接数据库(暂以SQL SERVER2000 的PUBS库的表EMPLOYEE为例),不允许用WEB控件,以格式化输出到WEB页上。小弟考虑很久,打算用TD TR进行控制,但是始终实现不了,望高手给出一段代码。
然后是日前小弟前去的公司给出的题目:
前提不允许使用WEB控件,连接一数据库,并且在WEB页上以树形结构输出数据库中的数据,就是像我们论坛首页左边的树形类似,需要实现父节点与子节点的可收缩和可扩展功能,然后实现对数据的增,删,改,查,并且在点击节点叶的时候能够连接新的网页,可使用SQL SERVER 和XML作为数据库。
小弟使用过TreeView控件,但是在此是不允许使用控件,所以实在没有办法,据我在网上的查找,有用HTML+CSS+JAVASCRIPT实现WEB页的树形的,小弟还一思路是创建一TreeView类,用FORM.CONTROL(好像拼错了).ADD添加,但是没成功,希望高手来帮助解决下!
因为小弟是经人指点才知道此地高手众多,所以小弟没有多少分,愿意以30乃至更高的分数来感谢帮助小弟的高手。
在ASP.NET中用C#语言来实现。
首先是,做一个WEBSERVISE,既WEB服务,连接数据库(暂以SQL SERVER2000 的PUBS库的表EMPLOYEE为例),不允许用WEB控件,以格式化输出到WEB页上。小弟考虑很久,打算用TD TR进行控制,但是始终实现不了,望高手给出一段代码。
然后是日前小弟前去的公司给出的题目:
前提不允许使用WEB控件,连接一数据库,并且在WEB页上以树形结构输出数据库中的数据,就是像我们论坛首页左边的树形类似,需要实现父节点与子节点的可收缩和可扩展功能,然后实现对数据的增,删,改,查,并且在点击节点叶的时候能够连接新的网页,可使用SQL SERVER 和XML作为数据库。
小弟使用过TreeView控件,但是在此是不允许使用控件,所以实在没有办法,据我在网上的查找,有用HTML+CSS+JAVASCRIPT实现WEB页的树形的,小弟还一思路是创建一TreeView类,用FORM.CONTROL(好像拼错了).ADD添加,但是没成功,希望高手来帮助解决下!
因为小弟是经人指点才知道此地高手众多,所以小弟没有多少分,愿意以30乃至更高的分数来感谢帮助小弟的高手。
在ASP.NET中用C#语言来实现。
解决方案 »
- iis求助,访问不成
- 错误: 'document.getElementById(...)' 为空或不是对象
- 正则不了解
- 用sql2005远程里连接数据库可以链接上,本地的就不行, 哪出错了?
- 取消GridView或者FormView绑定的ObjectDatasous操作方法
- 还是文件上传的问题
- DateSet和ArrayList,哪个比较省空间及访问速度快?
- 实现VS2005英文版转换为简体中文RTM版本的两种方法疑问
- 关于Datagrid动态绑定Dropdownlist的问题??急!
- 在c#中用这种方法Response.Write("<body onload=""CoopLogin.txtLoginId.focus()"">");出现语法错误.
- 关于自定义控件的问题!急
- Oracle,我对你太失望了!!!!!!!!!!!!
不过那个树形较简单
用递归函数加ajax就可以搞定的了
动态生成页面table
response.wirte("<table>");
//如果有表头,可以在这里添加
while (d.read())
{
response.wirte("<tr>");
response.wirte("<td>");
//读取的数据
response.wirte("</td>");
//循环生成一行
response.wirte("</tr>");}
response.wirte("</table>");
<?xml-stylesheet type="text/xsl" href="style.xsl"?>
<?xml version="1.0" encoding="GB2312"?>
<table>
<person>
<id>1</id>
<name>人物</name>
<parent>0</parent>
</person>
<person>
<id>2</id>
<name>武将</name>
<parent>1</parent>
</person>
<person>
<id>3</id>
<name>文臣</name>
<parent>1</parent>
</person>
<person>
<id>4</id>
<name>魏延</name>
<parent>2</parent>
</person>
<person>
<id>5</id>
<name>赵云</name>
<parent>2</parent>
</person>
<person>
<id>6</id>
<name>何平</name>
<parent>2</parent>
</person>
<person>
<id>7</id>
<name>荀域</name>
<parent>3</parent>
</person>
<person>
<id>8</id>
<name>荀攸</name>
<parent>3</parent>
</person>
<person>
<id>9</id>
<name>鲁肃</name>
<parent>3</parent>
</person>
<person>
<id>10</id>
<name>赵统</name>
<parent>5</parent>
</person>
<person>
<id>11</id>
<name>赵广</name>
<parent>5</parent>
</person>
</table>style.xsl
<?xml version="1.0" encoding="utf-8"?>
<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<xsl:apply-templates select="//person[parent=0]"/>
</html>
</xsl:template>
<xsl:template match="//person">
<xsl:param name="id" select="id"/>
<div id="{$id}" onclick="s{$id}.style.display=='none'?s{$id}.style.display='block':s{$id}.style.display='none'">
<xsl:choose>
<xsl:when test="count(//person[parent=$id]) > 0">
<span style="cursor:hand">+</span>
</xsl:when>
<xsl:otherwise>-</xsl:otherwise>
</xsl:choose><xsl:value-of select="name"/></div>
<div id="s{$id}" style="display:none;margin-left:30px;">
<xsl:apply-templates select="//person[parent=$id]"/>
</div>
</xsl:template>
</xsl:transform>用c#生成demo这样的xml格式字串应该很简单吧.当然,你也可以将某些节点当作主节点的属性值来处理文档.
见我的第一篇blog
http://xucanzhao.cnblogs.com/
用for语句来写html啊~
StringBuilder sb = new StringBuilder();
sb.Append("<table>");
for(int i=0; i<dt.Rows.Count; i++){
sb.Append("<tr>");
for(int j=0; j<dt.Columns.Count; j++){
sb.Append("<td> "+dt.Rows[i][j].ToString()+" </td>");
}
sb.Append("</tr>");
}
sb.Append("</table>");
就这样, 最简单的HTML table就出来啦
<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<xsl:apply-templates select="//person[parent=0]"/>
</html>
</xsl:template>
<xsl:template match="//person">
<xsl:param name="id" select="id"/>
<div id="{$id}" onclick="s{$id}.style.display=='none'?s{$id}.style.display='block':s{$id}.style.display='none'">
<xsl:choose>
<xsl:when test="count(//person[parent=$id]) > 0">
<span style="cursor:hand" onclick="this.innerHTML=='+'?this.innerHTML='-':this.innerHTML='+';">+</span>
</xsl:when>
<xsl:otherwise>-</xsl:otherwise>
</xsl:choose><xsl:value-of select="name"/></div>
<div id="s{$id}" style="display:none;margin-left:30px;">
<xsl:apply-templates select="//person[parent=$id]"/>
</div>
</xsl:template>
</xsl:transform>