GridView利用RowDataBound来转换要显示的内容
最近有几个项目用asp.net开发,本来是打算用java的,但是感觉开发慢了,虽说自己已有很多ssh项目经验,也有集成好了的现成代码,开发起来也是轻车熟路了,但是再怎么论开发效率还是不如asp.net,更重要想换个技术试试,呵呵,这2天在Gridview上搞的时间比较多,也解决了很多问题,所以写点学习笔记,免得以后又忘记了。哈哈。
有时候经常遇到这样的情况,在数据库中某个字段存放的是0或1,而在页面上展现时候肯定就不能显示0或1了,相信这样没人知道这是干嘛的。默认情况Gridview绑定后自动把数据库中存放的内容丢给Label显示,为了能让人看懂我们需要把它们转换下,比如1为“是”,0为“否”之类的:
在获取Cell的内容时候这里有点区别:
1)当不是一个TemplateField时候使用:
String t = e.Row.Cells[6].Text //Cells的下标从0开始,当然还有其他方法,这里只是突简单,呵呵
2)如果是TemplateField需要使用:
((Label) e.Row.Cells[6].FindControl("Label6")).Text; //我这里只是一个例子,具体要看你放的是什么控件来对应转换,如果是按钮就是Button等等。
代码
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
string label = ((Label)e.Row.Cells[6].FindControl("Label6")).Text;
if (label == "0")
{
e.Row.Cells[6].Text = "否";
}
else
{
e.Row.Cells[6].Text = "是";
}
}
}
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
string label = ((Label)e.Row.Cells[6].FindControl("Label6")).Text;
if (label == "0")
{
e.Row.Cells[6].Text = "否";
}
else
{
e.Row.Cells[6].Text = "是";
}
}
}