asp.net页面显示数据,是否必须用数据控件
在asp.net当中,我想实现在前台页面显示出我从数据库当中查询出的数据。
是否必须用数据控件dridview之类的控件?
不使用数据控件,还有其他方式吗?讨教了!
[解决办法]
你也可以用直接在后台写出来html代码,显示出来。
[解决办法]
用.NET提供的控件显示数据简单点 否则还要自己读取 操作很麻烦
还有一种情况就是用第三方提供的控件
[解决办法]
你也可以自己写循环输出,用数据控件就是简单点
[解决办法]
自己写循环读出来
[解决办法]
使用循环都在。aspx中写!也不是很麻烦!我可是写过!但是没控件快!
[解决办法]
不少必须使用,想想PHP,ASP,JSP是怎么混下来的就知道啦
[解决办法]
使用数据控件简单,但是个性化不足,而且需要时间去学习
自己写就是工作量大一些了
其它没什么特殊区别。
[解决办法]
可以自己拼接html,灵活
[解决办法]
一般用repeater绑,repeater完成不了的话就从后台循环打出来了StringBuilder,效率比连接字符串高一些!
[解决办法]
你可以采用repeater控件,他不会产生多余的代码。
[解决办法]
要不要用 ,取决于你,方法多的很
[解决办法]
循环往页面写
[解决办法]
[解决办法]
这篇文章就介绍了如何不适用数据绑定控件来显示数据库中的数据。
asp.net夜话之七:ADO.NET介绍
一个小例子:
- HTML code
1. <%@ Page Language="C#" %> 2. <%@ Import Namespace="System.Data.SqlClient" %> 3. <%@ Import Namespace="System.Data" %> 4. <%@ Import Namespace="System.Text" %> 5. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 6. <script runat="server"> 7. //注:为了方便没有使用代码页面方式,实际开发中这种做大很少见 8. protected void Page_Load(object sender, EventArgs e) 9. { 10. 11. 12. } 13. public void ShowData() 14. { 15. //实例化Connection对象 16. SqlConnection connection = new SqlConnection("Data Source=(local);Initial Catalog=AspNetStudy;Persist Security Info=True;User ID=sa;Password=sa"); 17. //实例化Command对象 18. SqlCommand command = new SqlCommand("select * from UserInfo where sex=1", connection); 19. //打开Connection对象 20. connection.Open(); 21. //得到DataReader的实例,注意使用了CommandBehavior这个参数,以便同时关闭Connection 22. SqlDataReader reader = command.ExecuteReader(CommandBehavior.CloseConnection); 23. //如果当前记录还有下一条记录,则循环不会终止 24. while (reader.Read()) 25. { 26. Response.Write("<tr><td>" + reader.GetInt32(0) + "</td>");//按照列顺序和对应类型直接读取值 27. Response.Write("<td>" + reader.GetString(1) + "</td>");//按照列顺序和对应类型直接读取值 28. Response.Write("<td>" + reader.GetString(2) + "</td>");//按照列顺序和对应类型直接读取值 29. Response.Write("<td>" + reader.GetByte(3) + "</td>");//按照列顺序和对应类型直接读取值 30. //下面是按照列顺序直接读取值,并且根据值来判断最终显示结果 31. Response.Write("<td>" + (reader.GetBoolean(4)==true?"男":"女") + "</td>"); 32. //根据列顺序读,列的值需要做相应转换 33. Response.Write("<td>" + reader[5].ToString() + "</td>"); 34. //根据列名来读取,列的值需要做相应转换 35. Response.Write("<td>" + reader["Phone"] + "</td>"); 36. Response.Write("<td>" + reader["Email"].ToString() + "</td></tr>\n"); 37. } 38. reader.Close(); 39. } 40. </script> 41. <html xmlns="http://www.w3.org/1999/xhtml" > 42. <head runat="server"> 43. <title>无标题页</title> 44. </head> 45. <body> 46. <form id="form1" runat="server"> 47. <div> 48. <table border="1" cellpadding="0" cellspacing="0"> 49. <tr><td>编号</td><td>帐号</td><td>真实姓名</td><td>年龄</td><td>性别</td><td>手机</td><td>电话</td><td>电子邮件</td></tr> 50. <% 51. //在页面中调用后台代码,这样也能保证生成的代码不会位于<html></html>标记之外 52. ShowData(); 53. %> 54. </table> 55. </div> 56. </form> 57. </body> 58. </html>
[解决办法]
[解决办法]
同意
[解决办法]
我觉得看要求、看情况吧。
另外,向MVP周公学习
[解决办法]
一般用repeater,简单方便,如果需要进行其他其他操作的话gridview就很好用
[解决办法]
一般不用控件,大多数自己写HTML
[解决办法]
如果不用控件的话,就是自己拼html了
[解决办法]
你可以重写Page类的Render方法
protected override void Render(HtmlTextWriter writer)
[解决办法]
像楼上说的这样 以前我们公司就是把这种拼接操作做成一个库 一部分再封成webcontrol 以后用自己的来调
[解决办法]
不是必须呀。你也可以直接写HTML。
比如:返回一个数据在一个PUBLIC 的LIST里面。
那么HTML直接写:
<ul style="list-style:none;">
<%foreach(类型 t in List列表)
{%>
<li>t.显示的属性字段<li>
}
<%}%>
</ul>
当然,返回是DATATABLE 也可这样写。
[解决办法]
[解决办法]
[解决办法]
http://blog.csdn.net/xianfajushi/archive/2009/07/22/4371397.aspx
[解决办法]
这是个典型的“说谎者悖论”,很多成事不足败事有余者对玩这种悖论乐此不疲。
如果你代码写了三、四遍,你怎么办?copy?如果你稍微动点编程,就知道自己写成可复用的东西了吧?!这就是控件。
如果你需要在各种项目中总共重复1000次,如果你需要给几百万程序员共享,共享控件有什么不好?!
控件也是人写的。第一个写他的人可以说只有低级的东西才是“万能的”,而之后就没有道理这么说了。如果你有本事写好代码,就一定能写出更好的控件用于自己复用和给别人使用,而不需要简单地去讨论是否该用控件的问题。
[解决办法]
如果你真的写出了比微软的asp.net还好的代码,请把它写成控件用于自己复用,并且可以给同事和更多的人使用。我可以帮你推荐给微软发布到asp.net新版本中啊!!!
如果控件包括自己写的可复用代码,你觉得该用控件还是不该用控件。
[解决办法]
呵呵,帮我去看下怎么抽象化。。。
[解决办法]
[解决办法]
当你什么都不懂时,可以自己做个轮子,摸索下原理。
当你赶项目时,还从轮子做起,那就是跟自己过不去了。
[解决办法]
------解决方案--------------------
http://topic.csdn.net/u/20100207/22/2b32cdef-2852-4097-8567-bdfe264d5eba.html?seed=128057693&r=63331352#r_63331352
我帮你写好了一个 列表控件 还带分页,80%的情况下可以抛弃服务器控件跟数据源控件了。
[解决办法]
呵呵,除了Repeater还是Repeater,简单好用,
[解决办法]
- C# code
/// <summary>/// 近日出租房源/// </summary>/// <returns></returns>protected string BindHireHouseByDate(int number, string mongering){ var strHtml = ""; DataTable dt = new Bll.MyManage.RentSaleManage().QueryTopHireByDate(number, mongering, "", "", "", "", 0, 0); for (int i = 0; i < dt.Rows.Count; i++) { var linkTitle = dt.Rows[i]["HouseName"].ToString(); strHtml += "<tr>\n"; strHtml += "<td height=\"24\" align=\"center\"><a href='/hire/Detail.aspx?h=" + NewHouse.Common.Input.DesEncrypt(dt.Rows[i]["RSID"].ToString()) + "'style=\"COLOR: #fe0000\" target=\"_blank\" title=\"" + linkTitle + "\" >" + (dt.Rows[i]["HouseName"].ToString().Length > 10 ? dt.Rows[i]["HouseName"].ToString().Substring(0, 10) : dt.Rows[i]["HouseName"].ToString()) + "</a></td>\n"; strHtml += "<td align=\"center\"><a href='/hire/Detail.aspx?h=" + NewHouse.Common.Input.DesEncrypt(dt.Rows[i]["RSID"].ToString()) + "' target=\"_blank\" title=\"" + linkTitle + "\" >" + dt.Rows[i]["RoomNum"].ToString() + "室" + dt.Rows[i]["HallNUm"].ToString() + "厅</td>\n"; strHtml += "<td align=\"center\">" + dt.Rows[i]["TotalArea"].ToString() + "</td>\n"; strHtml += "<td align=\"center\">" + dt.Rows[i]["RentPrice"].ToString() + "元</td>\n"; strHtml += "</tr> \n"; if ((i + 1) < dt.Rows.Count) { strHtml += "<tr><td height=\"5\" colspan=\"5\" align=\"center\" class=\"xx1\"></td></tr>"; } } return strHtml; }
[解决办法]
习惯自己写html标签,灵活方便
[解决办法]
看情况咯
但我觉得在后台写还是好点!!
[解决办法]
[解决办法]
可以自己手写 http://www.lookxin.cn/html/ASP.NET/
[解决办法]
可以不用,就像asp那样,但是如果在.net平台下,去那样做,那还不如不用asp.net,