做了一个商品详细的页面 ,页面就是一个表格,然后放N多个Label 然后通过
lblName.Text=ds.Tables[0].Rows[0]["GoodsName"].ToString();
之类的方法绑定数据。
但是有一个字段是商品介绍,有好多文字,放一个textBox 改为多行显示,并调协合适的长度和宽度。
txtDetails.Text = ds.Tables[0].Rows[0]["GoodsIntroduce"].ToString();但是,这样的一个textBox 与我整个页面的整体性的搭配,极为不好,
能不能把字段GoodsIntroduce 直接绑定到表格的一个单元格里面?
我这样写:
<td style="......">
   <%# Eval("GoodsIntroduce")%>
</td> 
这样虽然不提示错误 ,但调试的时候,什么也不显示。
这样写的话
  <td style="width: 100px" colspan=2>
        <%# DataBinder.Eval(Container.DataItem, "GoodsIntroduce")%>
  </td>会提示错误:“System.Web.UI.Control”并不包含“DataItem”的定义。
这个错误可能的原因是我没有在页面放DataList或GridView等控件那到底怎么做呢,不会是放一个Label 然后控制他的长度和宽度?

解决方案 »

  1.   

    不能直接绑定,你是可以放一个label,控制宽度。
      

  2.   

    如果是用VS2005,可以试下literate控件
    直接绑定到单元格也是没问题的,2003和2005不一样,现在手头没代码,你网上搜一个再测试
      

  3.   

    你可以把DataSet定义成Protected/Public变量可以在页面上table td里直接ds.Tables[0].Rows[0]["GoodsIntroduce"].ToString(); //返回实体类是这么做的。
      

  4.   

    我知道人民币的格式是{0:c} 
    但怎么让Label应用这个格式?
      

  5.   

    怎么不能绑定呢???
    前台<td id="123" runat="server"><td>
    后台123.innerText=ds.Tables[0].Rows[0]["GoodsIntroduce"].ToString(); 
      

  6.   

    Cs文件
    public string GoodsIntroduce="".......
    GoodsIntroduce= ds.Tables[0].Rows[0]["GoodsIntroduce"].ToString(); aspx文件在Talbe的行中
    <%=GoodsIntroduce%>
      

  7.   

    <td style="......"> 
      <%# Eval("GoodsIntroduce")%> 
    </td> 
    在datalist里你可以这样用
    不然的话有三种方法:
    1、后台设置一个变量public string str = "";在protected void Page_Load 上面写
       然后赋值,str = "内容";
       前台调用 <%=str%>2、<td id="td1" runat="server" style="......"> 
       后台:td1.innerText = "内容";3、写一个返回内容的方法
       public string str()
       {
          return "内容"; 
       }   调用:<%=str()%>
      

  8.   


    <td style="......"> 
      <%# Eval("GoodsIntroduce")%> 
    </td> 
    ----------
    这种绑定方式在后台需要databind。而你现在并不是数据绑定控件。所以不会显示。
    可以直接放一个Label,然后在后台指定它的text属性即可。。
    或者使用
    <td style="......"> 
      <%= Goods %> 
    </td> 
    后台声明Goods为公共变量,然后为其赋值。即可