CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
英特尔®游戏设计大赛100美元现金周周送 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

困惑:刚学ASP.NET就碰到这个问题,想了N久未能搞掂,各位高手帮忙看看....

楼主qifanghcy(菜鸟QiFang)2003-10-02 13:28:23 在 .NET技术 / ASP.NET 提问

照着书上的示例做了如下的ASP.NET程序:  
  <%@   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>  
              <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}")   %>  
  <p>  
  数量:<%#   DataBinder.Eval(Container.DataItem,"IntegerValue","{0:N2}")%>  
  <p>  
  项:<%#   DataBinder.Eval(Container.DataItem,"StringValue")%>  
  定购日期:<asp:CheckBox   id=chk1   Checked='<%#   (bool)DataBinder.Eval(Container.DataItem,"BoolValue")%>'   runat=server/>  
  <p>  
  </itemtemplate>  
  </asp:Datalist  
  </form>  
  </center>  
  </body>  
  </html>  
   
  执行如下代码后会出现以下错误:  
   
  说明:   在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码。    
   
  编译器错误信息:   CS0117:   “System.Web.UI.Control”并不包含对“DataItem”的定义  
   
  源错误:  
  行   46:   />  
  行   47:   <itemtemplate   name="ItemTemplate">  
  行   48:   定购日期:<%#   DataBinder.Eval(Container.DataItem,"DateTimeValue","{0:d}")   %>  
  行   49:   <p>  
  行   50:       数量:<%#   DataBinder.Eval(Container.DataItem,"IntegerValue","{0:N2}")%>  
     
   
  源文件:   d:\inetpub\wwwroot\test1\databind7.aspx         行:   48    
   
  出错行就在第48行,到底是怎么一回事呢??各位高手请帮忙解决一下! 问题点数:50、回复次数:8Top

1 楼freecs(北狼)回复于 2003-10-02 13:45:25 得分 0

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

2 楼freecs(北狼)回复于 2003-10-02 13:46:19 得分 0

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

3 楼freexin(小昕)回复于 2003-10-02 13:52:47 得分 0

估计是没有预先定义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>内部属性就不能使用延迟绑定<%#   %>的方式  
   
   
  Top

4 楼qiuji(忆秋季)回复于 2003-10-02 13:59:04 得分 0

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

5 楼kysyuan(迈伯乐)回复于 2003-10-02 14:04:48 得分 25

代码如果是这样子就对了,不信你试一试,你在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>  
  Top

6 楼DreamMeng( 追梦 )回复于 2003-10-02 14:07:04 得分 0

upTop

7 楼kysyuan(迈伯乐)回复于 2003-10-02 14:08:16 得分 0

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

8 楼qiuji(忆秋季)回复于 2003-10-02 14:19:36 得分 25

<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     少了一个“>”。Top

相关问题

  • 从asp走向asp.net的困惑?
  • 关于asp困惑,在线等
  • 一个困惑了我很久的问题,你们碰到 0x80004005 的错误吗?
  • 几个困惑的小问题,n多分相送!!!
  • 困惑......困惑......
  • 极为困惑的问题?asp在网上出统计图
  • 急!急!急!一个ASP初学者的困惑?
  • 对使用asp过程中遇到的两个困惑!
  • 困惑
  • 困惑!!!!!

关键词

  • asp.net

得分解答快速导航

  • 帖主:qifanghcy
  • kysyuan
  • qiuji

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo