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)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述