DataList控件的前台定义: <form id="form1" runat="server">
<asp:DataList ID="DataList1" runat="server">
<ItemTemplate>
<%#Container.DataItem("title")%>
</ItemTemplate>
</asp:DataList>
</form>后台数据绑定: string strConning = "Data Source=S010;Database=pubs;User ID=sa;password=924864";
SqlConnection con = new SqlConnection(strConning);
try
{
con.Open();
string strSql = "Select * from Titles";
SqlCommand com = new SqlCommand(strSql,con);
SqlDataReader reader = com.ExecuteReader();
this.DataList1.DataSource = reader;
this.DataList1.DataBind();
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
在运行程序的时候出现下面的错误:
编译错误
说明: 在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码。 编译器错误消息: CS1955: 不能像使用方法那样使用不可调用的成员“System.Web.UI.WebControls.DataListItem.DataItem”。源错误: 行 11: <asp:DataList ID="DataList1" runat="server">
行 12: <ItemTemplate>
行 13: <%#Container.DataItem("title")%>
行 14: </ItemTemplate>
行 15: </asp:DataList>后台的程序在没有 <%#Container.DataItem("title")%>的语句是可以运行的.
string strConning = "Data Source=S010;Database=pubs;User ID=sa;password=924864";
SqlConnection con = new SqlConnection(strConning);
try
{
con.Open();
string strSql = "Select * from Titles";
SqlCommand com = new SqlCommand(strSql,con);
SqlDataReader reader = com.ExecuteReader();
DataTable dt = new DataTable();
dt.Load(reader);
reader.Close();
con.Close();
this.DataList1.DataSource = dt;
this.DataList1.DataBind();
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
试一下
<%# DataBinder.Eval(Container.DataItem,"title")%>