使用datalist可以灵活的定义你的数据展示,它比datagrid有着更好的灵活性。比如,我们定义了一个datalist,在page_load()事件中取出数据,绑定datalist,一切与datagrid无异。 private void Page_Load( object sender, System.EventArgs e) { // 在此处放置用户代码以初始化页面 System.Data.SqlClient.SqlConnection con=new System.Data.SqlClient.SqlConnection("data source=(local);user id=sa;database=pubs"); System.Data.SqlClient.SqlCommand sqlcom=new System.Data.SqlClient.SqlCommand("select * from titles",con); sqlcom.Connection.Open(); System.Data.SqlClient.SqlDataReader sqlreader=sqlcom.ExecuteReader(); this.DataList1.DataSource=sqlreader; this.DataList1.DataBind(); sqlcom.Connection.Close(); } 下面,重要的是,如何编辑定义你的datalist样式,比如,要定义几列格式一样的数据展示,我们可以定义datalist的RepeatColumns属性。技巧同编写所有的web窗体一样,请在itemtemplate里面嵌套一个table.比如下面这样: < asp:datalist id ="DataList1" runat ="server" RepeatColumns ="3" > < ItemTemplate > < TABLE style ="FONT: 10.5pt 宋体" cellPadding ="10" > < TR > < TD width ="1" bgColor ="#bd8672" > < TD vAlign ="top" >< IMG src ="aspplus/cale.gif" align ="top" > </ TD > < TD vAlign ="top" >< B > 书名: </ B > <% # DataBinder.Eval(Container.DataItem,"Title") %> < BR > < B > 价格: </ B > <% # DataBinder.Eval(Container.DataItem,"Price") %> < BR > </ TD > </ TR > </ TABLE > </ ItemTemplate > </ asp:datalist ></ FONT ></ form > 虽然我们紧紧写了一个模版列的代码,数据查询后所对应的所有的行,都将一一显示出来。 这里注意的是:<%%>与<%#%>的区别,看上面我们可以发现,前者是全局引用,而后者,仅仅在databind()发生后才编译代码,这是两者的区别。 同样注意的是Container.DataItem,它据说是指的局部变量的引用,datarowview ?我想我没有弄清楚它到底是怎么回事的引用。 但是结果,是我们所想要的。很好。 转载于:https://www.cnblogs.com/bluetooth/archive/2005/10/27/263092.html