博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
把DATATABLE,DS中的内容用HTML的方式显示
阅读量:6265 次
发布时间:2019-06-22

本文共 6293 字,大约阅读时间需要 20 分钟。

    前几天,在搞一个数据显示的时候,因为是不固定的列的,所以需要动态创建列,这里面就运用一下,直接把数据库的Table显示在Html上,有两种方法,但是都有相应的缺点,第一个,如果内容太多,长度不好控制,第二个,暂时不能动态列,好了,看代码吧:
第一个:  
在很多场合下有用
比如要发送一封Email给别人,这个Email里面的内容自然只能用HTML来写,如果涉及到数据显示的话,用这个会很方便

using
 System;
using
 System.Data;
using
 System.Configuration;
using
 System.Web;
using
 System.Web.Security;
using
 System.Web.UI;
using
 System.Web.UI.WebControls;
using
 System.Web.UI.WebControls.WebParts;
using
 System.Web.UI.HtmlControls;
/// <summary>
/// 其中z的值是自己定义的,表示你datatable中的字段数量,可以使用table.Columns.Count来替代,这样可以使得自动获取DATATABLE中的字段总数
/// </summary>
public
 
class
 Tohtml
{
    
public string newhtml(DataTable table,int z)
    
{
    
int hang=table.Rows.Count;
        
        
string a = " <html> abc";
        a 
+= " <table> ";
        
for (int i = 0; i < hang; i++)
        
{
            a 
+= " <tr> ";
            
for (int j = 0; j < z; j++)
            
{
                a 
+= " <td> ";
                a 
+= table.Rows[i][j];
                a 
+= " </td> ";
            }
            a 
+= "</tr>";
        }
        a 
+= " </table> ";
        a 
+= " </html> ";
        
return a ;
    }
}
希望对大家有帮助
网友 改进的代码
public
 
string
 newhtml(DataTable table) 
int colcount = table.Columns.Count; 
StringBuilder sb 
= new StringBuilder(1024*5); 
sb.Append(
""); 
for (int i = 0, rowcount = table.Rows.Count; i < rowcount; i++
sb.Append(
" "); 
DataRow row 
= table.Rows[i]; 
for (int j = 0; j < colcount; j++
sb.Append(
" "); 
sb.Append(row[j]
==null?"":row[j].ToString()); 
sb.Append(
" "); 
}
 
sb.Append(
" 
"
); 
}
 
sb.Append(
" "); 
return sb.ToString(); 
}
 
这个类还可以写的更完善,比如具体定义那些字段输出(也许你可能只需要输出其中的几个字段而不是所有字段)
内容比较简单,应该都会改
来源: <>
 
第二个:

上面就是结果,前台代码如下:

 

<%
@ Page Language
=
"
C#
"
 AutoEventWireup
=
"
true
"
  CodeFile
=
"
MethodOne.aspx.cs
"
 Inherits
=
"
_Default
"
 
%>
<!
DOCTYPE html PUBLIC 
"
-//W3C//DTD XHTML 1.0 Transitional//EN
"
 
"
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd
"
>
<
html xmlns
=
"
http://www.w3.org/1999/xhtml
"
>
<
head runat
=
"
server
"
>
    
<
title
></
title
>
    
<
link href
=
"
swcss.css
"
 rel
=
"
stylesheet
"
 type
=
"
text/css
"
 
/>
        
    
<
link href
=
"
TableZB.css
"
 rel
=
"
stylesheet
"
 type
=
"
text/css
"
 
/>
    
<
script src
=
"
js-datagrid/scripts/PagerView.js
"
 type
=
"
text/javascript
"
></
script
>
    
<
link href
=
"
js-datagrid/style.css
"
 rel
=
"
stylesheet
"
 type
=
"
text/css
"
 
/>
    
<
script src
=
"
jquery-1.4.1.min.js
"
 type
=
"
text/javascript
"
></
script
>
    
    
<
script type
=
"
text/javascript
"
>
        var currentpage 
=
 
1
;
        $(document).ready(function() {
            $.
get
(
"
Handler.ashx?flag=data&index=
"
 
+
 currentpage,
               function(data) {
                   $(
"
#sjxs
"
).append(data);
               });
            $.
get
(
"
Handler.ashx?flag=count
"
,
               function(count) {
                   var pager 
=
 
new
 PagerView(
'
pager
'
);
                   pager.itemCount 
=
 count;
                   pager.size 
=
 
5
;
                   pager.onclick 
=
 function(index) {
                       currentpage 
=
 index;
                       $.
get
(
"
Handler.ashx?flag=data&index=
"
 
+
 index,
                            function(data) {
                                $(
"
#sjxs tr
"
).each(function(m) {
                                    $(
"
#add
"
 
+
 m).remove();
                                });
                                $(
"
#sjxs
"
).append(data);
                            });
                   };
                   pager.render();
               }
        );
        });
    
</
script
>
   
</
head
>
<
body
>
    
<
form id
=
"
form1
"
 runat
=
"
server
"
>
    
<
fieldset style
=
"
width: 98%; border: solid 1px  #EDF7DC;
"
 
class
=
"
fileset_style
"
>
    
<
legend 
class
=
"
leg_style
"
>
查询结果
</
legend
>
    
<%--<
div style
=
"
overflow:scroll;width:100%;height:100%
"
>--%>
    
<
table border
=
"
1
"
 cellpadding
=
"
0
"
 cellspacing
=
"
0
"
 width
=
"
100%
"
 align
=
"
center
"
 id
=
"
sjxs
"
 
class
=
"
TableStyleZB
"
>
       
    
<
tr 
class
=
"
trTitle
"
>
    
<
td colspan
=
"
5
"
>
当前发票库存情况
</
td
>
    
<
td colspan
=
"
4
"
>
购买后一年(含)以上未验旧使用情况
</
td
>
    
<
td
></
td
>
    
</
tr
>
    
<
tr  
class
=
"
trTitle
"
>
    
<
td
>
管理机关
</
td
>
    
<
td
>
合计
</
td
>
    
<
td
>
机打发票
</
td
>
    
<
td
>
手工发票
</
td
>
    
<
td
>
冠名发票
</
td
>
    
<
td
>
其他
</
td
>
    
<
td
>
正常户
</
td
>
    
<
td
>
占库存户数的比率
</
td
>
    
<
td
>
非正常户
</
td
>
    
<
td
>
证件失效户
</
td
>
    
    
</
tr
>
    
<
tr  
class
=
"
trTitle
"
>
    
<
td
>
0
</
td
>
    
<
td
>
1
</
td
>
    
<
td
>
2
</
td
>
    
<
td
>
3
</
td
>
    
<
td
>
4
</
td
>
    
<
td
>
5
</
td
>
    
<
td
>
6
</
td
>
    
<
td
>
7
=
6
/
1
</
td
>
    
<
td
>
8
</
td
>
    
<
td
>
9
</
td
>
    
</
tr
>
    
</
table
>
    
<%--</
div
>--%>
    
</
fieldset
>
     
<
div id
=
"
pager
"
></
div
>
     
<
div id
=
"
info
"
></
div
>
    
</
form
>
</
body
>
</
html
>

 

 

处理页面程序如下:

 

<%
@ WebHandler Language
=
"
C#
"
 Class
=
"
Handler
"
 
%>
using
 System;
using
 System.Web;
using
 System.Data;
using
 System.Data.SqlClient;
using
 System.Text;
public
 
class
 Handler : IHttpHandler {
    
    
public
 
void
 ProcessRequest (HttpContext context) {
        context.Response.ContentType 
=
 
"
text/plain
"
;
        
if
 (context.Request.QueryString[
"
flag
"
].Equals(
"
data
"
))
        {
            context.Response.Write(GetResult(
5
,Int32.Parse(context.Request.QueryString[
"
index
"
])));
        }
        
if
 (context.Request.QueryString[
"
flag
"
].Equals(
"
count
"
))
        {
            context.Response.Write(getCount());
        }
    }
    
private
 
string
 GetResult()
    {
        DataTable dt 
=
 
new
 DataTable();
        
using
 (SqlConnection conn 
=
 
new
 SqlConnection(System.Configuration.ConfigurationManager.AppSettings[
"
conn
"
]))
        {
            conn.Open();
            
string
 sql 
=
 
"
SELECT  * FROM TestBlog 
"
;
            SqlDataAdapter sda 
=
 
new
 SqlDataAdapter(sql, conn);
            sda.Fill(dt);
        }
        
int
 rLen 
=
 dt.Rows.Count;
        
int
 cLen 
=
 dt.Columns.Count;
        StringBuilder sb 
=
 
new
 StringBuilder();
        
for
 (
int
 j 
=
 
0
; j 
<
 rLen; j
++
)
        {
            sb.Append(
"
<tr>
"
);
            
for
 (
int
 i 
=
 
0
; i 
<
 cLen; i
++
)
            {
                sb.Append(
"
<td>
"
);
                sb.Append(dt.Rows[j][i].ToString());
                sb.Append(
"
</td>
"
);
            }
            sb.Append(
"
</tr>
"
);
        }
        
return
 sb.ToString();
    }
    
    
private
 
string
 GetResult(
int
 pagecount,
int
 currentpage)
    {
        DataTable dt 
=
 
new
 DataTable();
        
        
using
 (SqlConnection conn 
=
 
new
 SqlConnection(System.Configuration.ConfigurationManager.AppSettings[
"
conn
"
]))
        {
            conn.Open();
            
string
 sql 
=
 
"
SELECT TOP 
"
+
pagecount
+
"
 * FROM TestBlog tb WHERE ydid NOT IN (SELECT TOP 
"
+
pagecount
*
(currentpage
-
1
)
+
"
 ydid FROM TestBlog tb2) 
"
;
            SqlDataAdapter sda 
=
 
new
 SqlDataAdapter(sql,conn);
            sda.Fill(dt);
        }
        
int
 rLen 
=
 dt.Rows.Count;
        
int
 cLen 
=
 dt.Columns.Count;
        StringBuilder sb 
=
 
new
 StringBuilder();
           
        
for
 (
int
 j 
=
 
0
; j 
<
 rLen; j
++
)
        {
            sb.Append(
"
<tr id=add
"
+
j
+
"
>
"
);
            
for
 (
int
 i 
=
 
0
; i 
<
 cLen; i
++
)
            {
                sb.Append(
"
<td>
"
);
                sb.Append(dt.Rows[j][i].ToString());
                sb.Append(
"
</td>
"
);
            }
            sb.Append(
"
</tr>
"
);
        }
        
return
 sb.ToString();
    }
    
private
 
string
 getCount()
    {
        DataTable dt 
=
 
new
 DataTable();
        
using
 (SqlConnection conn 
=
 
new
 SqlConnection(System.Configuration.ConfigurationManager.AppSettings[
"
conn
"
]))
        {
            conn.Open();
            
string
 sql 
=
 
"
select count(*) from testblog
"
;
            SqlDataAdapter sda 
=
 
new
 SqlDataAdapter(sql, conn);
            sda.Fill(dt);
        }
        
return
 dt.Rows[
0
][
0
].ToString();
    }
 
    
public
 
bool
 IsReusable {
        
get
 {
            
return
 
false
;
        }
    }
}

 

 
来源: <>
   

转载地址:http://jwdpa.baihongyu.com/

你可能感兴趣的文章
13.使用toggle()方法绑定多个函数
查看>>
springboot集成redis
查看>>
装饰器的应用-装饰器带参数和不带参数
查看>>
数据库 --> SQL 和 NoSQL 的区别
查看>>
USB学习笔记连载(二十):FX2LP如何实现高速和全速切换(转载)
查看>>
ubuntu下搭建JAVA开发环境【转】
查看>>
和菜鸟一起学c之gcc编译过程及其常用编译选项【转】
查看>>
Linux内核驱动--硬件访问I/O【原创】
查看>>
使用NSUserDefaults保存自定义对象(转)
查看>>
linux上查看swf文件.靠谱
查看>>
sql server两种分页方法
查看>>
一本离线的百科全书,当然无法和一本在线的百科全书抗衡。所谓的常识,在你的思考中被重构,根源就在于在线的崛起。...
查看>>
Floyd算法
查看>>
CentOS 6.4下安装Oracle 11gR2
查看>>
linux建立用户 详细
查看>>
jquery获取radio的值
查看>>
创建索引
查看>>
jQuery基础-创建HTML
查看>>
spring boot 热部署
查看>>
NYOJ-214 单调递增子序列(二) AC 分类: NYOJ ...
查看>>