花小钱,办大事

简介: http://syeerzy.netyi.net/blog/user1/16/archives/2005/8194.html 我的高中数学老师经常强调使用最方便的解题方法,他喜欢说“别人一块钱只能买一个鸡蛋,咱们要一块钱买两鸡蛋,有时候还多要杯豆浆,这就叫花小钱办大事。。”虽然豆浆鸡蛋算不得什么大事,但是我一直记着他的思想,花最小的代价,干最多事情。 偶见别人写的几个方法,其实简单修改一下

http://syeerzy.netyi.net/blog/user1/16/archives/2005/8194.html

我的高中数学老师经常强调使用最方便的解题方法,他喜欢说“别人一块钱只能买一个鸡蛋,咱们要一块钱买两鸡蛋,有时候还多要杯豆浆,这就叫花小钱办大事。。”虽然豆浆鸡蛋算不得什么大事,但是我一直记着他的思想,花最小的代价,干最多事情。

偶见别人写的几个方法,其实简单修改一下,可以干更多事情。(方法本身已经被我简化处理过了,其实原方法远不是这样简单,为说明问题,修改去掉多余部分)

1。 public static void BindGrid(DataGrid dg,DataTable dt)
       {
                dg.DataSource = dt;
                dg.DataBind();
       }
2。 public static void BindDropDownList(DropDownList ddl,DataTable dt,string valuefield,string textfield)
{
        ddl.DataSource = dt;
        ddl.DataTextField = textfield;
       ddl.DataValueField = valuefield;
        ddl.DataBind();
}

3. public static void AddConfirm(Button b,string msg)
{
        b.Attributes.Add("onclick","return confirm(''"+msg+");");
}

 

大家对以上代码有什么感想???其实方法的内容几乎不用修改,只要简单修改一下参数的声明,比如第一个把DataGrid换成BaseDataList,那么方法除了有它现在绑定DataGrid的功能,同时也拥有了绑定DataList的功能,而方法内容完全不用修改。同理,第2个如果把DropDownList改成ListControl,那么除了拥有现在的绑定DropDownList的功能,同时也可以绑定ListBox,CheckBoxList,RadioButtonList等控件而完全不需要修改实现代码就提供了4倍的功能,第3个只能给Button(WebControl里的)加弹出确认,如果换成ImageButton,LinkButton就不行了,有人说换成WebControl,那么还是有HtmlControl里面的按钮实现不了,如果换成Control,类型倒是够广,可是不是所有Control都有Attributes属性的。。。其实这个方法只用到Attributes,只要找找这个属性在继承树上是哪里最先有的就可以了,可以找到一个接口 IAttributeAccessor,所有的HtmlControl和WebControl都实现了这个接口,这个接口带来了Attributes,所以只要把Button换成IAttributeAccessor为参数类型,里面稍微改一下把属性语法改为set语法:
public static void AddConfirm(IAttributeAccessor b,string msg)
{
        b.setAttribute("onclick","return confirm(''"+msg+");");
}

就可以适用所有需要的情况了。

处处留心注意,其实你的代码功能可以更强大。

目录
相关文章
|
JavaScript 前端开发
Vue样式不生效 如何解决它
Vue样式不生效 如何解决它
415 0
|
编解码 编译器
项目实战——Qt实现FFmpeg音视频转码器(一)
项目实战——Qt实现FFmpeg音视频转码器(一)
483 0
|
19天前
|
数据可视化 知识图谱
LightRAG 实战: 基于 Ollama 搭建带知识图谱的可控 RAG 系统
LightRAG 是一款开源、模块化的检索增强生成(RAG)框架,支持快速构建基于知识图谱与向量检索的混合搜索系统。它兼容多种LLM与嵌入模型,如Ollama、Gemini等,提供灵活配置和本地部署能力,助力高效、准确的问答系统开发。
183 2
LightRAG 实战: 基于 Ollama 搭建带知识图谱的可控 RAG 系统
|
存储 前端开发 rax
x64汇编语言与逆向工程基础指南(三)
x64汇编语言与逆向工程基础指南(三)
568 1
|
数据采集 搜索推荐 数据可视化
百货商场用户画像描绘与价值分析(上)
百货商场用户画像描绘与价值分析
477 1
百货商场用户画像描绘与价值分析(上)
|
存储 Web App开发 编译器
C语言程序设计——int,double,char的用法
C语言程序设计——int,double,char的用法
|
消息中间件 Linux
mq报错abbit@syld36: * connected to epmd (port 4369) on syld36 * epmd reports node ‘rabbit‘ uses po
mq报错abbit@syld36: * connected to epmd (port 4369) on syld36 * epmd reports node ‘rabbit‘ uses po
296 0
|
存储 缓存 监控
|
存储 缓存 固态存储
三分钟解决AE缓存预览渲染错误、暂停、卡顿问题
三分钟解决AE缓存预览渲染错误、暂停、卡顿问题
3099 2
|
机器学习/深度学习 新零售 人工智能
案例酷丨1688平台:场景服务赋能金融普惠,让交易更安心
案例酷丨1688平台:场景服务赋能金融普惠,让交易更安心
1412 0