首页 > 开发 > 综合 > 正文

如何在DataGrid里面使用动态图形表示数字

2024-07-21 02:23:35
字体:
来源:转载
供稿:网友
本文将要简单的介绍如何在datagrid里面用图形表是一个数字,听起来好象要用到gui的编程,其实不然,如果你读完全文你就会发现其实很简单,只是一个“小把戏”而已,但是请不要失望,其实在实际的应用中这个“小把戏”就是你项目中的一个亮点。

首先为了实现这个功能我们需要一个datagrid,并且为这个datagrid邦定数据,具体的邦定代码如下(由于我说明问题的重点不在如何邦定datagrid所以我就是用了最原始的邦定方法,目的旨在说明主题)。

画一个datagrid在html里面,代码就像下面的一样,我使用了一个测试的数据库和一个测试的表名字都叫test,同时这个test表里面有a,b,c3个字段:

<asp:datagrid id="datagrid1" runat="server" width="100%" autogeneratecolumns="false">
<columns>
<asp:boundcolumn datafield="a" headertext="名称"></asp:boundcolumn>
<asp:templatecolumn headertext="数字的图形表示">
<itemtemplate>
<asp:label id="label1" runat="server"></asp:label>
</itemtemplate>
</asp:templatecolumn>
<asp:boundcolumn datafield="c" headertext="数字表示"></asp:boundcolumn>
</columns>
</asp:datagrid>

正如你看到的,我们使用了一个模版列来显示数据,它只是一个label而不是image,其他两个是邦定字段,c就是我们要显示的数字了。

ok,接下来我们看看,cs的部分,帮定代码如下:

sqlconnection conn = new sqlconnection(system.configuration.configurationsettings.appsettings["connectionstring"]);
sqldataadapter da = new sqldataadapter("select a,c from test",conn);
dataset ds = new dataset();
da.fill(ds);
this.datagrid1.datasource = ds.tables[0];
this.datagrid1.databind();

非常简单。因为我不喜欢将数据邦定代码写在html里面所以我使用了itemdatabound事件来完成这件事情。具体的代码如下:

private void datagrid1_itemdatabound(object sender, system.web.ui.webcontrols.datagriditemeventargs e) {
if(e.item.itemtype == listitemtype.item || e.item.itemtype == listitemtype.alternatingitem){
label lbl = (label)e.item.cells[1].findcontrol("label1");
lbl.text = "<hr align='left' color='blue' size='10' width='"+e.item.cells[2].text+"'>";
}
}

看上去是不是很简单?呵呵,希望你不会以为我在骗你,好了按照上面的步骤创建一个页面试一试吧,效果不错,我想通过他还可以实现其他很多有关数据的显示,比如:比例。不过这种比例的计算你最好在邦定之前处理好放到datatable里面,这样邦定的代码将非常简单。运行的结果如下:



好了!此文已完,祝大家工作顺利!

:p

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表