繁体   English   中英

如何在DataList中查找设置为True的一个Label

How to find the one Label in DataList that is set to True

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

在我的.aspx页中,有我的DataList:

 <asp:DataList ID="DataList1" runat="server" DataKeyField="ProductSID" 
    DataSourceID="SqlDataSource1" onitemcreated="DataList1_ItemCreated" 
    RepeatColumns="3" RepeatDirection="Horizontal" Width="1112px">
    <ItemTemplate>
        ProductSID:
        <asp:Label ID="ProductSIDLabel" runat="server" Text='<%# Eval("ProductSID") %>' />
        <br />
        ProductSKU:
        <asp:Label ID="ProductSKULabel" runat="server" Text='<%# Eval("ProductSKU") %>' />
        <br />
        ProductImage1:
        <asp:Label ID="ProductImage1Label" runat="server" Text='<%# Eval("ProductImage1") %>' />
        <br />
        ShowLive:
        <asp:Label ID="ShowLiveLabel" runat="server" Text='<%# Eval("ShowLive") %>' />
        <br />
        CollectionTypeID:
        <asp:Label ID="CollectionTypeIDLabel" runat="server"  Text='<%# Eval("CollectionTypeID") %>' />
        <br />
        CollectionHomePage:
        <asp:Label ID="CollectionHomePageLabel" runat="server"  Text='<%# Eval("CollectionHomePage") %>' />
        <br />
        <br />
    </ItemTemplate>
</asp:DataList>

在我后面的代码中,使用ItemCreated事件查找并设置label.backcolor属性。 注意:我正在使用递归的findControl类

protected void DataList1_ItemCreated(object sender, DataListItemEventArgs e)
    {

        foreach (DataListItem item in DataList1.Items)
        {
          if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
          { 
          Label itemLabel = form1.FindControlR("CollectionHomePageLabel") as Label;
          if (itemLabel !=null || itemLabel.Text == "True")
          {
              itemLabel.BackColor = System.Drawing.Color.Yellow;
          }
     }

当我运行页面时,找到itemLabel,并显示颜色。 但是它将itemLabel颜色设置为在DataList中找到的itemLabel的第一个实例。 在DataList中的所有itemLabel中,只有一个具有text = True-且应该是拾取背景色的标签。 另外:itemLabel正在数据库中选择一个名为“ CollectionHomePage”的列,该列为True / False位数据类型。 我一定想念一些简单的东西...感谢您的想法。

1 个回复

ItemCreated事件是针对每个数据列表项目执行的,它不是全局的,因此您正在为每个项目执行相同的代码,而且在您的情况下,这恐怕是错误的。

您只需要检查当前已创建的项目。 另外,由于在创建的项目上数据尚未绑定到项目,因此您需要使用ItemDataBound事件

这里有一个片段可能适合您

protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e)
{
    foreach(Control control in e.Item.Controls)
    {
        if (control is Label && (control as Label).Text.Equals("True"))
        {
            (control as Label).BackColor = System.Drawing.Color.Yellow;
        }
    }
}
1 如何在通过数据列表归档的输入中设置标签值

我可以使用Reactjs在html5中使用数据列表创建输入字段。 reactjs代码如下所示: 事实证明,此代码可以正常工作,例如输入字段在其中,如果用户在该字段中键入内容,则会显示相关列表。 问题是输入字段为空,没有任何标签。 因此,需要一个用于指示字段内容的指示器,例如,可以在 ...

3 如何在Datalist1中找到控件?

嗨,有人能告诉我如何找到位于DataList控件内部的DataList吗?它给Error Object设置了一个实例。 我正在以这种方式找到控件: DataList dl =(((DataList)(DataList1.FindControl(“ DataList2”)))); ...

2011-01-07 16:50:39 2 2146   asp.net
4 我如何在数据列表中找到控件

我在asp.net项目中获取了一个数据列表,其中包含一些图片和图片名称。 现在,我想在每页之后显示每个图片。 这意味着如果有任何用户单击图片,则图片将在另一页中打开并显示其详细信息。所以我想知道如何在数据列表中找到控件。 在下面的数据列表图片中,我想单击Jai Ho之类的图片名称,它将在另 ...

2014-04-17 11:55:18 2 66   asp.net
9 如何将CSS类设置为数据列表?

一切工作正常,但我对项目的样式没有任何控制权。 我的意思是我在外部具有数据列表上的样式,但我想在每个项目之间(垂直)添加一些间距。 我怎么做? ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM