我可以使用Reactjs在html5中使用数据列表创建输入字段。 reactjs代码如下所示: 事实证明,此代码可以正常工作,例如输入字段在其中,如果用户在该字段中键入内容,则会显示相关列表。 问题是输入字段为空,没有任何标签。 因此,需要一个用于指示字段内容的指示器,例如,可以在 ...
提示:本站收集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位数据类型。 我一定想念一些简单的东西...感谢您的想法。
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;
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.