♣
50分,简单的DATAGRID绑定问题。
将一个datasource的table绑定到一个datagrid上,某列的值需要变化,如:
序号 值 级别 比率 序号 值 级别 比率
1 100 a 1 100 优秀 100/400
2 90 a 2 90 优秀 90/400
3 70 b 3 70 良好 260/400
table中的数据 4 60 b ————》显示为 4 60 及格 320/400
5 50 c 5 50 差 370/400
6 30 c 6 30 差 1
total 400 total 400
存在的问题:sql语句不能变化,查询的结果如图一,不做处理时显示如上图一,现在需要在datagrid中显示如图二的样子,即判断级别,显示对应的值,如a——》优秀,求出比率的值,至于求比率的方法可以解决,就是俺不知道在那里填入比率的值,显示级别的值,绑定的时候可以改变的吗?现在没有编译环境,请大家在自己的机子上一试,最好有原代码。
· 网友精彩回答:
在 aspx.cs 中写个小函数
public static string getscore(int intscore)
{
if(intscore == 60)
return "及格";
return intscore.tostring();
}
绑定的时候 <%# getscore(int32.parse(databinder.eval(container.dataitem,"分数字段名").tostring())) %>
public static string getscore(int intscore)
{
if(intscore > 80 )
return "优秀";
else if(intscore > 60)
return "良好";
else if(intscore == 60)
return "及格";
else if(intscore <60)
return "差";
}
我晕 写了个简单页面 你拷回去放到 web目录就可以运行了
<%@ page language="c#" contenttype="text/html" responseencoding="gb2312" %>
<%@ import namespace="system.data" %>
<script language="c#" runat="server">
datatable cart;
dataview cartview;
icollection createdatasource()
{
datatable dt = new datatable();
datarow dr;
dt.columns.add(new datacolumn("id", typeof(int32)));
dt.columns.add(new datacolumn("username", typeof(string)));
dt.columns.add(new datacolumn("score", typeof(double)));
for (int i = 0; i < 10; i++)
{
dr = dt.newrow();
dr[0] = i;
dr[1] = "学生 " + i.tostring();
dr[2] = 30 + i*10;
dt.rows.add(dr);
}
dataview dv = new dataview(dt);
return dv;
}
void page_load(object sender, eventargs e)
{
if (!ispostback)
{
// need to load this data only once.
itemsgrid.datasource = createdatasource();
itemsgrid.databind();
}
}
public static string getscore(int intscore)
{
if(intscore > 80 )
return "优秀";
else if(intscore > 60)
return "良好";
else if(intscore == 60)
return "及格";
else if(intscore <60)
return "差";
return "";
}
</script>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=gb2312">
<title>datagrid bind score sample</title>
</head>
<body>
<form runat=server>
<h3>datagrid bind score sample code by laodai_net </h3>
<asp:datagrid id="itemsgrid" runat="server"
bordercolor="black"
borderwidth="1"
cellpadding="3"
showfooter="true"
autogeneratecolumns="false">
<columns>
<asp:templatecolumn sortexpression="score" headertext="id">
<headerstyle wrap="false" width="100%"></headerstyle>
<itemtemplate>
<%# databinder.eval(container.dataitem, "score") %>
</itemtemplate>
</asp:templatecolumn>
<asp:templatecolumn sortexpression="username" headertext="学生姓名">
<headerstyle wrap="false" width="100%"></headerstyle>
<itemtemplate>
<%# databinder.eval(container.dataitem, "username") %>
</itemtemplate>
</asp:templatecolumn>
<asp:templatecolumn sortexpression="score" headertext="学生成绩">
<headerstyle wrap="false" width="100%"></headerstyle>
<itemtemplate>
<%# databinder.eval(container.dataitem, "score") %>
</itemtemplate>
</asp:templatecolumn>
<asp:templatecolumn sortexpression="score" headertext="成绩等级">
<headerstyle wrap="false" width="100%"></headerstyle>
<itemtemplate>
<%# getscore(int32.parse(databinder.eval(container.dataitem,"score").tostring())) %>
</itemtemplate>
</asp:templatecolumn>
</columns>
</asp:datagrid>
</form>
</body>
</html>
- 更多问题:
- · 请指教:怎样判断串口发送已完毕?
- · 江湖告急——请问怎么在ppoint中加入PDF格式的页面?
- · 使用ADOTable组件怎样才能把新记录添加在当前位置?
- · 关于在结果中查找的问题!高手来指点下。跪谢
- · 对象之间如何接受和发送消息?
- · 怎样判断软驱中是否有软盘啊?是先获取句柄再读,如果读失败就表示没有软盘吗?
- · ………………ASP中取数据库图像的问题…………………
- · 请帮忙看一下sql语句哪里错了,谢谢!!!
- · 新手的问题:cbuilder中如何定义接口以及类
- · 西方女人半边天所以男女平等,日本女人丈夫养所以任夫鱼肉,中国男女平等还一定要男的花钱??!!
- · 可以在存贮过程中定义一个变量存放临时表吗?
- · SQL SERVER 存储引擎 与查询引擎
- · 在大学的时候大家玩过一些男人系列的游戏,我想和同学在网上一起玩。怎么实现
- · 关于图形按钮的问题
- · 大家来讨论讨论
- · 在DataGrid的PageIndexChanged事件中,怎么取得DataGrid中某个combo的值

