谢谢

解决方案 »

  1.   

    假设在DataList的ItemTemplate里增加了一个:
    <asp:Label ID="LabelAdded" runat="server" />protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e)
    {
            if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
            {
                DataRowView drv = e.Item.DataItem as DataRowView;            Label label = e.Item.FindControl("LabelAdded") as Label;
                if (Convert.ToDecimal(drv["价格字段名"]) >= 20.0m)
                {
                    label.Text = "太贵了!";
                }
                else
                    label.Text = "便宜货!";
            }
    }
      

  2.   


    前台:
       <asp:DataList ID="DataList1" runat="server" OnItemDataBound="DataList1_ItemDataBound">
                <ItemTemplate>
                    <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
                </ItemTemplate>
            </asp:DataList>
    后台:
            this.DataList1.DataSource = Dt; //DataTable 包含Name字段
           this.DataList1.DataBind();  protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e)
        {     
            if (e.Item.FindControl("Label1") != null)
            {
                Label label = (Label)e.Item.FindControl("Label1");
                DataRowView dl = (DataRowView)e.Item.DataItem;
                label.Text = dl["Name"].ToString();          
            }
        }
      

  3.   


    我的意思是如果数据库中的字段"ID"没有邦定到datalist中的某个控件中的话,我怎么取到某一行或者所有行的这个"ID"字段的值?
      

  4.   

    DataList1.DataKeys[e.Item.ItemIndex].ToString();
      

  5.   

    前提是<asp:DataList DataKeyField="ProductID" 
      

  6.   


    不行呀,如果name字段事先没有绑定到某个控件中,读出来的值为空!
    在数据源中有这个select name, ...  from table where .... 
      

  7.   

    DataKeys能不能有多个字段?
    如果是多个字段,怎么取值
      

  8.   

    datalist都没有绑定,DataList1_ItemDataBound中能读到数据??
      

  9.   

    可以了,刚才那个字段是空值,谢谢楼上的各位!
    还有个问题:
    DataKeys能不能有多个字段? 
    如果是多个字段,怎么取值
      

  10.   

    如果你是在ItemDataBound事件处理代码里通过
    DataRowView drv = (DataRowView)e.Item.DataItem;
    那么drv["任何一个字段"]都可以访问,无论对应字段在没在ItemTemplate里绑定。
      

  11.   

    DataKeys能不能有多个字段? 
    如果是多个字段,怎么取值
      

  12.   

    和GridView、DetailsView和FormView控件不同,DataList控件的DataKeyField属性中不能使用多个主键列。不要问为什么,它天生就这样!