表T_Year中
ID YEAR
1 1900
2 1901
3 1908
4 1909
......
111 2000
112 2001
113 2005
114 2008假如表T_Year中含有以上数据
现欲在gridview中显示所有的年份(从1900--2008),分10列显示
如在表T_Year中存在则正常显示,如表T_Year中不存在则字体显示为红色请问这个如何实现
ID YEAR
1 1900
2 1901
3 1908
4 1909
......
111 2000
112 2001
113 2005
114 2008假如表T_Year中含有以上数据
现欲在gridview中显示所有的年份(从1900--2008),分10列显示
如在表T_Year中存在则正常显示,如表T_Year中不存在则字体显示为红色请问这个如何实现
例如:
1900 1901 1902 1903 1904 1905 1906 1907 1908 1909
1910......在表T_Year里不存在的话就显示红色
数据绑定控件是要和数据源里的值绑定的,如果就是从1900到2008,又何必绑定只要做个循环,逐个判断即可
放在什么里面好?
protected void Button1_Click(object sender, EventArgs e)
{
TableRow tr=new TableRow();
int i = 0;
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["con"].ToString());
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandText = "select * from aa";
con.Open();
SqlDataReader sdr = cmd.ExecuteReader();
while (sdr.Read())
{
i = i + 1;
TableCell tc = new TableCell();
if (Convert.ToInt32(sdr["yearId"]) != 0)
{
tc.Controls.Add(new LiteralControl(sdr["yearId"].ToString()));
tr.Cells.Add(tc);
if ((i % 10) == 0)
{
this.Table1.Rows.Add(tr);
tr = new TableRow();
}
}
else
{
tc.Controls.Add(new LiteralControl("没有数据"));
tr.Cells.Add(tc);
if ((i % 10) == 0)
{
this.Table1.Rows.Add(tr);
tr = new TableRow();
}
}
}
if(i%10 != 0)
{
tr=new TableRow();
this.Table1.Rows.Add(tr);
}
}
用for循环
response.write
先输出table,在tr,在td
有空的话就给td加背景色为红色
每十个输出一个<br />换行
实在不想就response.write
就用个label接收
也行呀
label+=xxx;
这样也可以呀
</asp:DataList></div>用DataList控件很容易实现 "现欲在gridview中显示所有的年份(从1900--2008),分10列显示"不过是在VS2005中 "如在表T_Year中存在则正常显示,如表T_Year中不存在则字体显示为红色" 这个又不知道怎么办....
--------------------------------------------------------------------------------
用Grid 显很容易解决 "如在表T_Year中存在则正常显示,如表T_Year中不存在则字体显示为红色"
<asp:GridView ID="GridView1" runat="server" EmptyDataText="null">
<EmptyDataRowStyle ForeColor="#C00000" />
</asp:GridView>
看来很试试其它方法了.我也是想了很久都想不出来...哎
支持14楼的方法,gridview绑定1900-2008的DataTable,设置默认字体颜色为红色在绑定事件中,与另个DataTable(存放着数据库的数据)的记录对比,使其字体变为黑色
DataTable dt = pms.SqlHelper.ExecuteDataTable("select year ...");
for (int i = 1900,j=0; i++; i <= 2008)
{
if (dt.Select("year='" + i + "'").Length == 0)
{
str += " <span class='red'> " + i + " </span> ";
}
else
{
str += " <span class='black'> " + i + " </span> ";
}
if (j == 9)
{
str += "<br />";
j = 0;
}
j++;
}
Label1.Text = str;