msdn上看到如下代码,烦高手改称c# Protected Sub FormatRepeaterRow(ByVal sender As Object, ByVal e As RepeaterItemEventArgs) If e.Item.ItemType = ListItemType.Item Or _ e.Item.ItemType = ListItemType.AlternatingItem Then Dim dbr As DbDataRecord = CType(e.Item.DataItem, DbDataRecord) If Not IsDBNULL(dbr("Country")) AndAlso dbr("Country") = "USA" Then CType(e.Item.FindControl("lblContactName"), Label).ForeColor = _ System.Drawing.Color.Red End If End If End Sub
在服务器端可以在ItemBounded事件中一个单元格一个单元格的改,
怎么改呀?
Protected Sub FormatRepeaterRow(ByVal sender As Object,
ByVal e As RepeaterItemEventArgs)
If e.Item.ItemType = ListItemType.Item Or _
e.Item.ItemType = ListItemType.AlternatingItem Then
Dim dbr As DbDataRecord = CType(e.Item.DataItem, DbDataRecord)
If Not IsDBNULL(dbr("Country")) AndAlso dbr("Country") = "USA" Then
CType(e.Item.FindControl("lblContactName"), Label).ForeColor = _
System.Drawing.Color.Red
End If
End If
End Sub
再次运行该项目。由于 ItemDataBound 事件处理程序中包含的条件格式设置代码,来自美国的联系人(13 个,共 91 个客户)将以红色显示。
<ItemTemplate>
<asp:Label ID="lbl" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "name")%>'></asp:Label>
</ItemTemplate>
</asp:DataList>在后台代码中
protected void Page_Load(object sender, EventArgs e)
{
DataTable table = new DataTable();
table.Columns.Add("name");
for (int i = 0; i < 20; i++)
{
DataRow row = table.NewRow();
row["name"] = i;
table.Rows.Add(row);
}
this.list.DataSource = table;
this.list.DataBind();
}
protected void list_ItemDataBound(object sender, DataListItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item ||
e.Item.ItemType == ListItemType.AlternatingItem)
{
DataRowView drv = (DataRowView)e.Item.DataItem;
if (!(drv.Row.ItemArray[0] is DBNull) &&
Convert.ToInt32(drv.Row.ItemArray[0]) % 2 == 0)
{
Label lbl = (Label)e.Item.FindControl("lbl");
lbl.ForeColor = Color.Red;
}
}
}
protected void DataList1_ItemDataBound1(object sender, DataListItemEventArgs e)
{
if (((e.Item.ItemType == ListItemType.Item) || (e.Item.ItemType == ListItemType.AlternatingItem)) && DataList1.DataKeys[e.Item.ItemIndex].ToString().Trim() == "1")
((Label)e.Item.FindControl("lb")).BackColor = System.Drawing.Color.Gray;
}
主要是list_ItemDataBound这个事件
在这个事件中你可以得到当前的数据以及模板列的东西
然后你可以设置你想要的格式你可以自己Google一下DataList ItemDataBound关键字