如何从数据库中取值显示到asp.net的TABLE(HTML控件)上

csLius 2008-07-17 05:59:51
任何方式都可以,我想要求助以下两种方式,不知道能不能实现.
1.前台写JS代码调后台方法取得数据库数据,再循环显示.
2.后台取得数据库数据后,直接在后台文件中画出前台代码.
请高手给实现一下,不胜感激...
...全文
698 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
diao880626 2008-07-19
  • 打赏
  • 举报
回复

这个代码我是用来做分页的 但其中有你想要的,供参考!

using System;
using System.Collections;
using System.Configuration;
using System.Data;
//using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
//using System.Xml.Linq;
using System.Data.SqlClient;





public partial class 内容分页 : System.Web.UI.Page
{

public int PageSize = 2; //设置每页显示多少条记录

protected void Page_Load(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection("uid=sa;pwd=123;server=.;Database=Northwind");
con.Open();
//Response.Write(con.State.ToString());
string strSQL = "select UserAddr from page where UserID=12 ";
//int MaxSize = cmd.Length();
SqlCommand cmd = new SqlCommand(strSQL, con);
string Max =cmd.ExecuteScalar().ToString (); //取出总笔数
int MaxSize = Max.Length;
//int MaxSize = Convert.ToInt32(cmd.ExecuteScalar()); //取出总笔数
int Page = Convert.ToInt32(Request.QueryString.Get("PageID")); //获取页码
//Label1.Text = MaxSize.ToString ();
if (Page == 0)
{
Page = 1;
}
float temp = (float)MaxSize / PageSize;
if (Page >= Convert.ToInt32(Math.Ceiling(temp)))
{
//Math.Ceiling() 返回大于或等于指定数字的最小整数


Page = Convert.ToInt32(Math.Ceiling(temp));
}
string SQL = "select top " + PageSize + " * from page where UserID>" + (Page - 1) * PageSize;
SqlCommand scmd = new SqlCommand(SQL, con);
SqlDataReader sdr = scmd.ExecuteReader();

string html = "<table class=table border=1>";
while (sdr.Read())
{
html += "<tr>";
html += "<td width=150px>标题</td>";
html += "<td width=150px>" + sdr["UserName"].ToString() + "</td>";

html += "</tr>";

html += "<tr>";
html += "<td width=250px>内容</td>";

html += "<td width=250px>" + sdr["UserAddr"].ToString() + "</td>";
html += "</tr>";
}
html += "</table>";
sdr.Close();
con.Close();
Label2.Text = html;
Label1.Text = "共有" + Convert.ToInt32(Math.Ceiling(temp)) + "页/当前是第" + Page + "页";



}

homesos 2008-07-17
  • 打赏
  • 举报
回复
用AJAX,
在JS方法中调用后台方法从数据库中获取数据,然后通过DIV(放到前台页面相应位置)进行赋值显示。
yap111 2008-07-17
  • 打赏
  • 举报
回复
静观高手显招
MADfox1983 2008-07-17
  • 打赏
  • 举报
回复
给label和span赋值也可以显示表格哈````````
JeffChung 2008-07-17
  • 打赏
  • 举报
回复
你的两种都可以。第一种要用ajax。
第二种:


StringBuilder sb = new StringBuilder();
sb.Append("<table border='1'>");

foreach (DataRow dr in dt.Rows)
{
sb.Append("<tr>");
sb.Append("<td>"+ dr["column0"] +"</td>");
sb.Append("<td>"+ dr["column1"] +"</td>");
sb.Append("<td>"+ dr["column2"] +"</td>");
sb.Append("</tr>");
}
sb.Append("</table>");

Response.Write(sb.ToString());
suiqirui19872005 2008-07-17
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 suiqirui19872005 的回复:]
1.前台写JS代码调后台方法取得数据库数据,再循环显示.

JScript code

function ff()
{
var data=<%loaddata()%>
}




C# code
public string loaddata()
{
//返回一个字符串
return "[[1,2,3],[4,5,6]]";
}
[/Quote]

function ff()
{
var data=<%=loaddata()%>
}
suiqirui19872005 2008-07-17
  • 打赏
  • 举报
回复
2.后台取得数据库数据后,直接在后台文件中画出前台代码.

public static string Build_msgtd(bool ctrl, string msg,string url)
{
System.Text.StringBuilder sb = new System.Text.StringBuilder();
sb.Append("<table style='font-size:12px' width=\"500\" border=\"0\" bgcolor=\"#AECDE3\" align=\"center\" cellpadding=\"3\" cellspacing=\"1\">");
sb.Append("<tr >");
sb.Append("<td align='left' valign='top' bgcolor='#FFFFFF'>");
sb.Append("<table border='0' cellpadding='0' cellspacing='0' >");
sb.Append("<tr>");
sb.Append("<td width='20' align='left'><img src='/WebContainer/Image/icon_triangle.gif'/></td>");
sb.Append("<td style='font-size:14px' >  <B>");
if (ctrl == true)
{
sb.Append("操作成功");
}
else
{
sb.Append("温馨提醒");
}
sb.Append("</B></td>");
sb.Append("</tr>");
sb.Append("</table>");
sb.Append("</td>");
sb.Append("</tr>");
sb.Append("<tr>");
sb.Append("<td align='center' bgcolor='#ffffff'>");
sb.Append("<table border='0' cellpadding='0' cellspacing='0'>");
sb.Append("<tr> ");
sb.Append("<td style='font-size:12px' align='center' height=100px>");
sb.Append(msg);
sb.Append("</td>");
sb.Append("</tr>");
sb.Append("</table>");
sb.Append("</td>");
sb.Append("</tr>");
sb.Append("<tr>");
sb.Append("<td align='center' bgcolor='#FFFFFF' border='0'/><a href='");
sb.Append(url);
sb.Append("'><img src='/WebContainer/Image/goback.gif' border=0></a>");
sb.Append("</tr>");
sb.Append("</table>");
sb.Append("</td>");
sb.Append("</tr>");
sb.Append("</table>");
return sb.ToString();
}
public static void build_exit(bool ctrl, string msg, string url)
{
HttpContext.Current.Response.Write(Build_msgtd(ctrl, msg, url));
HttpContext.Current.Response.End();
}

suiqirui19872005 2008-07-17
  • 打赏
  • 举报
回复
1.前台写JS代码调后台方法取得数据库数据,再循环显示.


function ff()
{
var data=<%loaddata()%>
}


public string loaddata()
{
//返回一个字符串
return "[[1,2,3],[4,5,6]]";
}
cpp2017 2008-07-17
  • 打赏
  • 举报
回复
为什么要用这种传统的asp的方式呢?
可用repeater或datalist都可以。
怎么取值不会?
连数据库取数据会么?
MADfox1983 2008-07-17
  • 打赏
  • 举报
回复
Literal.Text = "<table><tr><td>123</td></tr></table>";
Response.Write("<table><tr><td>abc</td></tr></table>");


response直接输出到页面头了

js的可以通过ajax取得值,然后write出来就OK了
csLius 2008-07-17
  • 打赏
  • 举报
回复
我最想要第二种方法的代码...
xhan2000 2008-07-17
  • 打赏
  • 举报
回复
js无法直接操作数据库

可以后台定义个datatable,得到数据

然后前台循环构造table
csLius 2008-07-17
  • 打赏
  • 举报
回复
我就是不知道怎么取到值...我就想要一小段代码看看实现的整体过程..
MADfox1983 2008-07-17
  • 打赏
  • 举报
回复
第一个js有值了显示不困难吧....
csLius 2008-07-17
  • 打赏
  • 举报
回复
谢谢楼上的,有代码吗?
MADfox1983 2008-07-17
  • 打赏
  • 举报
回复
Response.Write或者Literal

62,177

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧