<%@ Import Namespace="System.Drawing" %><asp:Label runat="server" ForeColor='<%# Color.FromName(DataBinder.Eval(Container.DataItem, "YourColorColumn").ToString()) %>' Text='<%# DataBinder.Eval(Container.DataItem, "name") %>' />
解决方案 »
- ashx 设置断点无法进入
- 用友华表CELL插件 如何发布部署
- 在aspnet mvc中,网站首页怎么搞呀?
- XP系统IIS下操作 Excel 问题
- gridview怎么获取要编辑的列
- 请问如何检测,aspnet网页发邮件,的错误啊?
- 求求你们...让我解脱了吧....我忙了一晚上了....问题太多只剩10分了,求求你们救救我..
- 一个web程序操作几个数据库,几个数据库结构一样,就是数据不一样遇到了点问题
- Response.Redirect能不能使页面跳转的时候是弹出新窗口,在线等
- 怎么显示表啊(我完全初学)
- XXX.aspx.cs文件突然失效了,怎麽回事啊??????
- Access数据库只能读,不能写,为何?>:(
string strSQL = "SELECT titleName + '(' + titleType + ')' AS title ,dir ,color FROM title";
DataSet objDataSet = new DataSet();
SqlConnection objConnection = new SqlConnection(strConnection);
SqlDataAdapter objAdapter = new SqlDataAdapter(strSQL,objConnection);
objAdapter.Fill(objDataSet,"title");
DataView objDataView = new DataView(objDataSet.Tables["title"]);
dgNameList.DataSource = objDataView;
dgNameList.DataBind();
以下是aspx文件
<form id="Left" method="post" runat="server">
<FONT face="宋体">
<asp:DataGrid id="dgNameList" runat="server" GridLines="None" AutoGenerateColumns="False" ShowHeader="False">
<Columns>
<asp:HyperLinkColumn Target="fraRightFrame" DataNavigateUrlField="dir" DataTextField="title"></asp:HyperLinkColumn>
</Columns>
</asp:DataGrid></FONT>
</form>
OnItemDataBound="DoItemDataBound"
>
<script language="C#" runat="server"> protected void DoItemDataBound(object sender, DataGridItemEventArgs e)
{
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
string sColor = DataBinder.Eval(e.Item.DataItem, "YourColorColumn" ).ToString();
for (int i=0; i < e.Item.Cells.Count; i++)
e.Item.Cells[i].BackColor = Color.FromName(sColor); }
}
</script>
===>
e.Item.Cells[i].ForeColor
{
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
string sColor = DataBinder.Eval(e.Item.DataItem, "title_color" ).ToString();
for (int i=0; i < e.Item.Cells.Count; i++)
{
//e.Item.Cells[i].BackColor = Color.FromName(sColor);
e.Item.Cells[i].ForeColor = Color.FromName(sColor);
}
}
}不行~
{
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
string sColor = DataBinder.Eval(e.Item.DataItem, "title_color" ).ToString();
for (int i=0; i < e.Item.Cells.Count; i++)
{
//e.Item.Cells[i].BackColor = Color.FromName(sColor);
//e.Item.Cells[i].ForeColor = Color.FromName(sColor);
//e.Item.Cells[i].Style["color"] = sColor;
e.Item.Cells[i].Attributes["style"] = "color:" + sColor;
}
}
}
以上全部测试都不行。~
输出是
<td style="color:red"><a href="/MyMopSite/db/2003-01-15/guest.xml "target="fraRightFrame" >标题(综合贴)</a></td>
应该是好用的。
我用vb语言试验的结果是:
sub DoItemDataBound(sender as object, e as DataGridItemEventArgs )
dim sColor as string
if(e.Item.ItemType = ListItemType.Item or e.Item.ItemType = ListItemType.AlternatingItem) then
e.Item.Cells(0).ForeColor = Color.FromName("red")
end if
end sub
效果达到
{
for (int j=0; j < e.Item.Cells[i].Controls.Count; j++) e.Item.Cells[i].Controls[j].ForeColor = Color.FromName(sColor);
}
{
for (int j=0; j < e.Item.Cells[i].Controls.Count; j++)
{
if (e.Item.Cells[i].Controls[j] is WebControl)
((WebControl)e.Item.Cells[i].Controls[j]).ForeColor=Color.FromName(sColor);
if (e.Item.Cells[i].Controls[j] is HtmlControl)
((HtmlControl)e.Item.Cells[3].Controls[j]).Style["color"]= sColor; }
}
===>
((HtmlControl)e.Item.Cells[i].Controls[j]).Style["color"]= sColor;
{
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
e.Item.Style["color"] = DataBinder.Eval(e.Item.DataItem, "title_color" ).ToString();
}
}
这个会好点:
if(e.Item.DataItem!=null)
{
...
}但是tr的style中的color好象不是很好用哦。
如果a有设置全局的style颜色,没有办法改变a的颜色的。----------------
to楼主:想翻我版啊???
html输出如下<table cellspacing="0" rules="all" border="1" id="dgNameList" style="border-collapse:collapse;">
<tr style="color:red ;">
<td><a href="/MyMopSite/db/2003-01-15/guest.xml " target="fraRightFrame">这个是我自己的大杂烩哦。大家一定要多多光顾。来的早的人可以多拿mp哦。哈哈 (综合贴)</a></td>
{
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
string sColor = DataBinder.Eval(e.Item.DataItem, "title_color" ).ToString(); for (int i=0; i < e.Item.Cells.Count; i++)
{
for (int j=0; j < e.Item.Cells[i].Controls.Count; j++)
{
if (e.Item.Cells[i].Controls[j] is WebControl)
((WebControl)e.Item.Cells[i].Controls[j]).ForeColor=Color.FromName(sColor);
if (e.Item.Cells[i].Controls[j] is HtmlControl)
((HtmlControl)e.Item.Cells[i].Controls[j]).Style["color"]= sColor;
}
} }
}这段测试通过。不知道其他的为什么不行呢?还有我看这里用了两个循环。会不会印象性能?
就算了。.
B.直接用<A href='<% # %>' ... (没有runat=server)
C.<asp:HyperLinkColumn OnDataBinding="hlc_DataBinding"
D.在DoItemDataBound里,找到所有的HyperLinkColumn ?
E.<asp:HyperLinkColumn CssStyle='<%# ... %>' ...有多少颜色就要定义多少...