• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
thankgoodness
博客园    首页    新随笔    联系   管理    订阅  订阅

DataGrid实现动态数字图形效果

本文将介绍如何在DataGrid(其他绑定控件)里面用图形表是一个数字,听起来有点玄,可能涉及啥图像编程,其实俺就是兜了圈子,耍了点小聪明实现之,在此献丑了,如果你用在项目中,客户认为你很cool的,是个亮点哦,哈哈。

       首先为了实现这个功能我们需要一个DataGrid,并且为这个DataGrid邦定数据,具体的前台绑定代码如下(后台不再赘述)。

       画一个DataGrid在HTML里面,代码就像下面的一样,我使用了一个测试的数据库和一个测试的表名字都叫test,同时这个test表里面有name,score 2个字段:

   <asp:DataGrid id="DataGrid1" runat="server" Width="100%" AutoGenerateColumns="False">
     <Columns>
      <asp:BoundColumn DataField="name" HeaderText="名称"></asp:BoundColumn>
      <asp:TemplateColumn HeaderText="数字的图形表示">
       <ItemTemplate>
        <asp:Label id="Label1" runat="server"></asp:Label>
       </ItemTemplate>
      </asp:TemplateColumn>
      <asp:BoundColumn DataField="score" HeaderText="数字表示"></asp:BoundColumn>
     </Columns>
    </asp:DataGrid>

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

     
      非常简单。因为我不喜欢将数据邦定代码写在HTML里面所以我使用了ItemDataBound事件来完成这件事情。其中你千万不要尝试给lable定义宽度,因为我就是为了这个绕了很大的圈子,它是个什么Uint型的,转换很烦,如果只是转换Int型还凑合,如果是Double型就不行了,如果尝试之后不行,请用我这个"投机取巧"之作,在此献丑,代码如下:

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+"'>";
   }
  }

posted @ 2008-05-19 09:37  宇晨  阅读(152)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3