我想使用datalist做一个数据显示页,但是datalist总是不显示!!下面是代码:
<asp:DataList id=DataList1 style="Z-INDEX: 103; LEFT: 192px; POSITION: absolute; TOP: 216px" runat="server" DataSource='<%# DataBinder.Eval(dataSet11, "Tables[Products].DefaultView.[0]", "{0}") %>' DataMember="Products" DataKeyField="P_ID">
 <HeaderTemplate>
  <asp:Table Runat="server">
   <asp:TableRow Runat="server">
    <asp:TableCell Runat="server">
      商品编号
    </asp:TableCell>
    <asp:TableCell Runat="server" ID="Tablecell1">
      商品名称
    </asp:TableCell>
    <asp:TableCell Runat="server" ID="Tablecell2">
      商品价格
    </asp:TableCell>
    <asp:TableCell Runat="server" ID="Tablecell3">
      商品数量
    </asp:TableCell>
   </asp:TableRow>
  </asp:Table>
 </HeaderTemplate>
 <ItemTemplate>
  <asp:Table id="Table1" Runat="server">
   <asp:TableRow Runat="server">
    <asp:TableCell Runat="server">
     <asp:Label id="Label1" runat="server" Text=
     '<%# DataBinder.EvalContainer.DataItem,"P_Code")%>'>
     </asp:Label>
    </asp:TableCell>
    <asp:TableCell>
      <asp:Label id="Label2" runat="server" Text=
      '<%# DataBinder.Eval(Container.DataItem,"P_Name")%>'>
      </asp:Label>
    </asp:TableCell>
    <asp:TableCell Runat="server" ID="Tablecell5">
     <asp:Label id="Label3" runat="server" Text=
     '<%# DataBinder.Eval(Container.DataItem,"P_Price")%>'>
     </asp:Label>
    </asp:TableCell>
    <asp:TableCell Runat="server" ID="Tablecell6">
     <asp:Label id="Label4" runat="server" Text=
      '<%# DataBinder.Eval(Container.DataItem,"P_Number")%>'>
     </asp:Label>
    </asp:TableCell>
   </asp:TableRow>
  </asp:Table>
 </ItemTemplate>
 <SeparatorTemplate>
 <HR width="100%" SIZE="1">
 </SeparatorTemplate>
</asp:DataList>
其中的数据连结sqlconnection1,sqlDataAdater1,dataSet11;
数据表Products code 商品编号 name 名字 price 价格 number 数量
datalist1.DataSource=dataSet11 datalist1.DataMember=Products datalist1.DataKeyField=P_ID
问题出在哪呢??各位大侠帮忙啦??

解决方案 »

  1.   

    datalist1.DataBind();
    你指定数据源后绑定了没有了?
    其次感觉既然你是表格显示,应该直接用datagrid来作还简单些
      

  2.   

    '<%# DataBinder.EvalContainer.DataItem,"P_Code")%>'>
    上面是不是少了括号(????
    在Eval后面加(
      

  3.   

    现在显示了;但是还是有不明白的问题哦!!上次问题出在datalist1.DataBind();!!我原来其中的数据连结sqlconnection1,sqlDataAdater1,dataSet11;都是用向导生成的,属性也是在属性窗口设置的.但怎么都不能显示数据!!!!
    这次我改为代码快里设置:
    private void Page_Load(object sender, System.EventArgs e)
    {
     // 在此处放置用户代码以初始化页面
       string conn="Data Source=localhost;Integrated Security=False;Database=Shop;
       User ID=jialiang;PWD=jialiang";
      if(!IsPostBack)
      {
        sqlConnection1=new System.Data.SqlClient.SqlConnection (conn);
        sqlConnection1.Open();
        sqlDataAdapter1=new SqlDataAdapter("select * from Products",conn);
        sqlDataAdapter1.Fill(dataSet11,"Products");
        DataList1.DataSource=dataSet11.Tables["Products"].DefaultView;
        DataList1.DataBind();
       }
    }
    然后就显示了,问题就出来了!!
    为什么在属性窗体里设计就不显示呢??