datagrid中显布尔值

原创 2004年12月28日 19:37:00
http://www.blogbus.com/blogbus/blog/index.php?blogid=8085

<<<关于ADO.NET中的SqlConnection对象的Close和Open | 主页 | 编辑DataGrid控件(一)>>>
DataGrid的使用-显示布尔值、显示图像 2004-02-23


 布尔字段可以有二种值:true或者false。虽然它很简单,但是没有特有的图形表示。
如果在DataGrid中你不想用文本表示布尔字段,你可以用复选框来代替,这样更为直观。

我们下面以SQL Server2000 Northwind数据库中的Employees表为类,Employees表中有
ReportsTo的列,它包含表明某位雇员要向某人汇报的数字值。特别地,这个字段地值
是上级的雇员号,如果雇员不向任何人汇报,它就是null。

Boolean.aspx(其中DataGrid设置如下):
<asp:DataGrid Runat="server" AutoGenerateColumns="False" BackColor="white" BorderColor="black"
 Font-Name="verdana" Font-Size="x-small" CellPadding="2" CellSpacing="0" id="grid">
  <HeaderStyle BackColor="brown" ForeColor="white" Font-Bold="True" />
  <AlternatingItemStyle BackColor="palegoldenrod" />
  <ItemStyle BackColor="beige" />
  <Columns>
    <asp:BoundColumn DataField="EmployeeID" HeaderText="ID">
 <ItemStyle BackColor="lightblue" />
    </asp:BoundColumn>
  <asp:TemplateColumn HeaderText="Employee Name">
   <ItemTemplate>
     <%#DataBinder.Eval(Container.DataItem,"TitleOfCourtesy")+","+"<b>"+
      DataBinder.Eval(Container.DataItem,"FirstName")+"</b>"+
      DataBinder.Eval(Container.DataItem,"LastName")%>
   </ItemTemplate>
  </asp:TemplateColumn>
  <asp:TemplateColumn HeaderText="Reports" HeaderStyle-HorizontalAlign="Center" ItemStyle-HorizontalAlign="Center">
    <ItemTemplate>
 <asp:CheckBox Runat=server Checked='<%#HasBoss((int)DataBinder.Eval(Container.DataItem,"boss"))%>' Enabled=False/>
    </ItemTemplate>
  </asp:TemplateColumn>
  <asp:BoundColumn HeaderText="Position" DataField="title"></asp:BoundColumn>
  </Columns>
</asp:DataGrid>

当你写到复选框时,你也许比较奇怪,Employees表中更本就没有boss列呀,这里却使用对boss的绑定,是不是写错啦?呵呵,这里并非
错误,当你向下看时,你就会明白啦!

Boolean.aspx.cs中的部分代码如下:

private void Page_Load(object sender, System.EventArgs e)
{
 // 在此处放置用户代码以初始化页面
  if (!Page.IsPostBack)
  {
    OnLoadData();
  }
 }


 private void OnLoadData()
 {
  string strConn="DATABASE=Northwind;SERVER=localhost;UID=sa;PWD=;";
  SqlConnection myconn=new SqlConnection(strConn);   
  //当我语句写到这里时,大家就会明白boss列的来源啦  
  string strsql="SELECT employeeid, titleofcourtesy, firstname, lastname, title, ISNULL(reportsto,0) AS boss FROM Employees"; 
  SqlDataAdapter da=new SqlDataAdapter(strsql,myconn);
  DataSet ds=new DataSet();
  da.Fill(ds,"MyTable");
  grid.DataSource=ds.Tables["MyTable"];
  grid.DataBind();
 }
  

  public bool HasBoss(int bossID)
  {
    if (bossID==0)
    return false;
    return true;
  }

  赶快运行一下,我们来看一下效果怎么样:不错,是挺直观的,为了不让用户手工的修改复选框,我们在这里已经将复选框的属性Enable设置
为false,难怪这里看上去的复选框会是灰色的。


  如果你是一位很挑剔的人,你会对灰色的复选框的效果很不满意,对,这种效果说老实说与界面的整体风格并不是完全统一和吻合的,那么
我们需要做怎么的修改才能做到与界面风格一致呢?
 下面将用图像对此做出改进。
 Images.aspx(中DataGrid部分):

 <asp:DataGrid Runat="server" id="DataGrid1" AutoGenerateColumns="False" BackColor="white" CellPadding="2"
   CellSpacing="0" BorderStyle="solid" BorderColor="black" BorderWidth="1px" font-size="x-small"
   font-names="verdana">
  <AlternatingItemStyle BackColor="palegoldenrod" />
  <ItemStyle BackColor="beige" />
  <HeaderStyle BackColor="brown" ForeColor="white" Font-Bold="True" />
  <Columns>
    <asp:BoundColumn DataField="employeeid" HeaderText="ID">
         <ItemStyle BackColor="lightblue" Font-Bold="True" />
    </asp:BoundColumn>
    <asp:TemplateColumn HeaderText="Employee Name">
    <ItemTemplate>
 <%#DataBinder.Eval(Container.DataItem,"TitleOfCourtesy")+","+"<b>"+
 DataBinder.Eval(Container.DataItem,"LastName")+"</b>"+
 DataBinder.Eval(Container.DataItem,"FirstName")%>
    </ItemTemplate>
  </asp:TemplateColumn>
  <asp:TemplateColumn HeaderText="Reports" HeaderStyle-HorizontalAlign="Center" ItemStyle-HorizontalAlign="Center">
     <ItemTemplate>
 <asp:Image Runat=server ImageUrl='<%#GetProperGifFile((int)DataBinder.Eval(Container.DataItem,"boss"))%>'/>
     </ItemTemplate>
  </asp:TemplateColumn>
  <asp:BoundColumn DataField="title" HeaderText="Position" />
  </Columns>
</asp:DataGrid>

 Images.aspx.cs:
 绑定和Boolean.aspx.cs中对DataGrid的绑定相同,不同的部分就是GetProperGifFile函数部分:
 public  string GetProperGifFile(int bossID)
  {
    if (bossID==0)
    return "Images/unchecked.gif";
    return "Images/checked.gif";
  }

  做好上面的步骤后,让我们来看一下效果吧!



pairs   发表于  2004-02-23 15:03  引用Trackback(0) | 编辑 

Comments
发表评论

用户名:

Email:

主页:


   
最近更新
对三层结构见解
关于三层
编辑DataGrid控件(二)
编辑DataGrid控件(一)
DataGrid使用-配色方案
DataGrid的使用-显示布尔值、显示图像
关于ADO.NET中的SqlConnection对象的Close和Open
asp.net常用的javascript经典例子(一)
DataList外观
用JavaScript编写当天日期


回显DataGrid

ID="list00" runat="server" AutoGenerateColumns="False" GridLines="None" Width="100%"ShowHeader="Fals...
  • jujuchen
  • jujuchen
  • 2007年05月22日 09:19
  • 401

DataGrid中的CheckBox处理

INPUT onclick="SelectDel(Form1)" type="checkbox" >全选function SelectDel(form)...{        var checked ...
  • enginetanmary
  • enginetanmary
  • 2007年07月05日 14:14
  • 543

Easyui combotree在编辑的时候回显

一般在分配权限的时候,编辑的时候需要让combotree回显。以下代码只是个人备份的,供参考。$('#XXX').combotree({ url : '', required : tr...
  • huangbaokang
  • huangbaokang
  • 2017年10月12日 19:53
  • 189

struts2+spring+mybatis datagrid 分页,查询,数据回显等详解

这篇位文章主要针对上一篇博客进行具体功能的操作说明。 一:分页 1.纯前端分页 //前段分页 function pagerFilter(data){ if (typeof data....
  • J_Bang
  • J_Bang
  • 2016年08月13日 10:01
  • 1931

添加一个下拉框到DataGrid

本实例利用Paint方法添加一个下拉框到DataGrid1上 1、新建一个Visual Basic Project 。2、添加一个DataGrid control到窗体上。3、加入以下代码 Impor...
  • lihonggen0
  • lihonggen0
  • 2003年01月11日 09:59
  • 1505

如何读取保存在数据库中的图片显示在DataGrid中

在DataGrid中有一个模板列,里面放置了一个ImageButton控件,当然Image也可以。你首先必须绑定DataGrid才能在使用DataBinder.Eval(Container,"Data...
  • qdzx2008
  • qdzx2008
  • 2005年09月17日 23:38
  • 882

DataGrid中的HtmlInputFile上传文件

 HTML控件加上runat="server"属性后就可以在后台控制,这样可以大大简化前台js代码的编写。如题下面是我写的DataGrid中的HtmlInputFile上传文件的例子(1)首先是提交按...
  • zhangbiao19850729
  • zhangbiao19850729
  • 2009年09月16日 09:43
  • 191

form表单运用datagrid的一些功能

表单中有datagrid时的提交方式: function to_save(form, tabTitle) { var localedata = $("#tab2").datagrid("g...
  • qq_26629277
  • qq_26629277
  • 2017年07月22日 20:47
  • 310

动态显示/隐藏 DataGrid 的列。

 在List中选中一个就会显示相应的 DataGrid 的列 xml version="1.0" encoding="utf-8"?>mx:Application xmlns:mx="http://w...
  • wingfay
  • wingfay
  • 2007年06月22日 11:46
  • 2250

图片二进制数据库的存取和读取...

  图片二进制数据库的存取和读取 DataBase Table Desing:   -Function:1. 导入图像文件,以二进制形式存入数据库表。2. 从数据库表读取二进制信息,返原显示在页面的d...
  • zwxrain
  • zwxrain
  • 2008年11月24日 08:54
  • 2086
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:datagrid中显布尔值
举报原因:
原因补充:

(最多只允许输入30个字)