引入System.ComponentModel 命名空间
using System.ComponentModel

解决方案 »

  1.   

    对了,建议你将后台类文件和Html 分开写
      

  2.   

    估计是没有预先定义DataList1<script language="C#" runat="server">
      protected DataList DataList1;//增加一行
      void Page_Load(Object Src,EventArgs E)
     {
    ......因为是延迟绑定。而你在运行Page_Load时已经绑定了,所以找不到Container.DataItem也可以把
    <asp:CheckBox id=chk1 Checked='<%# (bool)DataBinder.Eval(Container.DataItem,"BoolValue")%>' runat=server/>
    修改为不用<asp:控件,直接使用<input>的HTML控件就没有问题了,在DataList模板内使用了asp控件,如:<asp:CheckBox>内部属性就不能使用延迟绑定<%# %>的方式
      

  3.   

    <%@ Import namespace="System.ComponentModel" %>
      

  4.   

    代码如果是这样子就对了,不信你试一试,你在DataList控件中提前结束:
    <%@ Import namespace="System.Data" %>
    <HTML>
    <HEAD>
    <script language="C#" runat="server">
      void Page_Load(Object Src,EventArgs E)
    {
    if (!Page.IsPostBack)
    {
    DataTable dt=new DataTable();
    DataRow dr;
    dt.Columns.Add(new DataColumn("IntegerValue",typeof(Int32)));
    dt.Columns.Add(new DataColumn("StringValue",typeof(String)));
    dt.Columns.Add(new DataColumn("DateTimeValue",typeof(DateTime)));
    dt.Columns.Add(new DataColumn("BooleanValue",typeof(bool)));

    for(int i=1;i<=9;i++)
    {
    dr=dt.NewRow();
    dr[0]=i;
    dr[1]="No."+i.ToString();
    dr[2]=DateTime.Now;
    dr[3]=(i%2!=0)?true:false;
    dt.Rows.Add(dr);
    }
    DataList1.DataSource=new DataView(dt);
    DataList1.DataBind();
    } }
    </script>
    </HEAD>
    <body>
    <center>
    <h3><font face="Verdana">绑定到DataView</font></h3>
    <form runat="server" ID="Form1">
    <asp:DataList id="DataList1" runat="server" RepeatColumns="3" Width="80%" BorderColor="red" BackColor="gray" BorderWidth="8" GridLines="Both" CellPadding="8" CellSpacing="8" >
    <ITEMTEMPLATE name="ItemTemplate">定购日期:<%# DataBinder.Eval(Container.DataItem,"DateTimeValue","{0:d}") %> 
    数量:<%# DataBinder.Eval(Container.DataItem,"IntegerValue","{0:N2}")%> 
    <br>项:<%# DataBinder.Eval(Container.DataItem,"StringValue")%>
    定购日期:
    <asp:CheckBox id=chk1 runat="server" Checked='<%# (bool)DataBinder.Eval(Container.DataItem,"BooleanValue")%>'>
    </asp:CheckBox>
    <P></ITEMTEMPLATE>
    </asp:DataList>
    </center>
    </P></FORM>
    <CENTER></CENTER>
    </body>
    </HTML>
      

  5.   

    也就是去掉
     <asp:DataList id="DataList1" runat="server"
    RepeatColumns="3"
    Width="80%"
    BorderColor="red"
    BackColor="gray"
    BorderWidth="8"
    GridLines="Both"
    CellPadding="8"
    CellSpacing="8"
         />
    最后的那个“/”还有你的程序里面将BooleanValue写成BoolValue也是一大错误!
    如果 改正以上两个错误还是可以运行的
      

  6.   

    <asp:DataList id="DataList1" runat="server"
    RepeatColumns="3"
    Width="80%"
    BorderColor="red"
    BackColor="gray"
    BorderWidth="8"
    GridLines="Both"
    CellPadding="8"
    CellSpacing="8"
         />
    去掉/,因为<%# DataBinder.Eval(Container.DataItem,"DateTimeValue","{0:d}") %>要绑定数据,而你把值绑定到了DataList,但是由于<asp:DataList ..../>已经结束了,所以后面的代码就不在DataList中了。
    还有:</asp:Datalist  少了一个“>”。