Visual 数据绑定
平常,我们可以用多种方式实现同一件事,但你所实现的方法可能是容易的,也有可能比较麻烦。这里所说的容易同麻烦指的是你写的代码量。容易的方式可能的VS中“拖拖拽拽”就可以了。拿个“列表显示柱状图”的小例子说下吧,也许大家有更好的方法实现,不防交流下,共同进步。
为了大家更直观的这次所实现的功能,先将实现的结果贴出来,如图:
看到图形列里蓝黄条了吗,下面开始说下如何实现。
注意:在看本篇内容时,作者认为读者已会VS中数据绑定等基本操作。
读取表数据,并显示出来,如下:
完成上述操作后,我们开始添加模板列,并托进两个Panel,如图:
编辑模板,选中模板里的Panel2控件,点击”编辑DataBindings”
点击后,弹出”Panel2 databindings”对话框,勾选“显示所有属性”,下拉“可绑定属性”,选择“width”,点击右侧“字段绑定”,选择相应的表字段,如图:
Panel1同上操作,一切设置好了后,不要着急,还得在源码进行转换,如下
Width='<%# (int)Eval("Ratio_1") %>'>
Width='<%# Unit.Pixel((int)Eval("Ratio_2")) %>'
Int 或unit都可。
表结构
代码
USE [Demo]
GO
/****** 对象: Table [dbo].[Table1] 脚本日期: 05/18/2010 22:03:53 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[Table1](
[ID] [int] IDENTITY(1,1) NOT NULL,
[CustomerName] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
[Ratio_1] [int] NOT NULL CONSTRAINT [DF_Table1_Ratio_1] DEFAULT ((0)),
[Ratio_2] [int] NOT NULL CONSTRAINT [DF_Table1_Ratio_2] DEFAULT ((0))
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
/****** 对象: Table [dbo].[Table1] 脚本日期: 05/18/2010 22:03:53 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[Table1](
[ID] [int] IDENTITY(1,1) NOT NULL,
[CustomerName] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
[Ratio_1] [int] NOT NULL CONSTRAINT [DF_Table1_Ratio_1] DEFAULT ((0)),
[Ratio_2] [int] NOT NULL CONSTRAINT [DF_Table1_Ratio_2] DEFAULT ((0))
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
代码
insert into dbo.Table1(CustomerName, Ratio_1, Ratio_2)
values('Bob',55,45)
insert into dbo.Table1(CustomerName, Ratio_1, Ratio_2)
values('kevin',100,67)
insert into dbo.Table1(CustomerName, Ratio_1, Ratio_2)
values('zhangsan',67,76)
values('Bob',55,45)
insert into dbo.Table1(CustomerName, Ratio_1, Ratio_2)
values('kevin',100,67)
insert into dbo.Table1(CustomerName, Ratio_1, Ratio_2)
values('zhangsan',67,76)