Asp.net自定义控件开发任我行(4)-ViewState保存控件状态
摘要
上一篇我们实现了下拉框的效果,此章的目的主要是保存控件属性状态
内容
我们先来看一个例子,后台代码不变,我们只改UI页面的代码,先在页面上拖放两个控件,一个是我们现在要开发的这个控件,另一个是按钮Button
<body><form id="form1" runat="server"><XYB:TextEdit ID="txt" DropDwonHeight="200" DropdwonWidth="200" runat="server"></XYB:TextEdit><asp:Button runat="server" ID="btn" Text="点击我" OnClick="btn_Click" /></form> </body>
我们在Page_Load里面给属性赋值,代码如下
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls;namespace XYB.UI {public partial class TextEditUI : System.Web.UI.Page{protected void Page_Load(object sender, EventArgs e){if (!IsPostBack){txt.DropDwonHeight = 100;txt.DropdwonWidth = 100;}}protected void btn_Click(object sender, EventArgs e){} } }
我们运行浏览一下,第一次结果的确是100*100,但当我们点击一下按钮后,长和宽都还原成200了,也就是属性值没有被保存,现在我们只需要修改TextEdit.cs代码了,我们使用ViewState来保存控件属性状态值
using System; using System.Text; using System.Web.UI; using System.ComponentModel;//包含组件开发所必须含有的(属性)Attribute; using System.Web.UI.WebControls; using System.Web.UI.HtmlControls; using System.Collections.Generic;namespace XYB.Controls {public class TextEdit:TextBox{private int _dropDwonHeight;private int _dropdwonWidth;[Description("下拉框的高度"),//属性的描述Category("下拉框")//所属目录 ]public int DropDwonHeight{//如果前台控件没有给DropDwonHeight赋值,那它的初始值是50get { return ViewState["DropDwonHeight"] == null ? 150 : Convert.ToInt32(ViewState["DropDwonHeight"]); }set { ViewState["DropDwonHeight"] = value; }}[Description("下拉框的宽度"),Category("下拉框")]public int DropdwonWidth{get { return ViewState["DropdwonWidth"] == null ? 150 : Convert.ToInt32(ViewState["DropdwonWidth"]); }set { ViewState["DropdwonWidth"] = value; }}protected override void Render(HtmlTextWriter writer){base.Render(writer);Panel pnlDropDown = new Panel();pnlDropDown.ID = "pnlDropDownID";pnlDropDown.Height = DropDwonHeight;pnlDropDown.Width = DropdwonWidth;pnlDropDown.Style["border"] = "1px solid #ccc";//设置边框样式pnlDropDown.RenderControl(writer);//把下拉框呈现到网页上 } } }
重新生成控件运行,ok,当页面回发时,属性值依然不变。
注意
ViewState只在本页中可以有效,比如A页面中有一个ViewState["A"],那么在B页面中ViewState["A"]是为null的。
下集预告
自定义控件内嵌资源,预知后事如何,请看下回分解。敬请关注我!!
转载于:https://www.cnblogs.com/xuyubing/p/3325189.html
Asp.net自定义控件开发任我行(4)-ViewState保存控件状态相关推荐
- ASP.NET自定义控件开发系列(二)
在上一篇文章中,通过继承TextBox创建了一个简单的自定义控件. 这篇文章主要讲一下自定义控件中资源文件的封装. 在自定义控件中可能会用到图片.CSS样式表.JS文件等,可以把这些设为控件的属性,让 ...
- [转]用 ASP.NET 2.0 改进的 ViewState 加快网站速度
本文讨论: • ViewState 如何工作 • ASP.NET 2.0 ViewState 的改进 • 使用控件状态维护功能 • 性能考虑 本文使用以下技术: ASP.NET.C# 代码下载: Vi ...
- ASP.NET自定义控件组件开发 第四章 组合控件开发CompositeControl
第四章 组合控件开发CompositeControl 大家好,今天我们来实现一个自定义的控件,之前我们已经知道了,要开发自定义的控件一般继承三个基 类:Control,WebControl,还有一个就 ...
- ASP.NET自定义控件组件开发 第三章 为控件添加事件 后篇
第三章 为控件添加事件 后篇 前一篇文章只是简单的说了下事件,但是大家应该方法,在ASP.NET自定义控件中只是简单那么定义事件是行不 通.如果大家开发的是WinForm中的事件,之前的定义可能没有什 ...
- ASP.NET自定义控件组件开发 第一章 第二篇 接着待续
ASP.NET自定义控件组件开发 第一章 第二篇 接着待续 ASP.NET自定义控件组件开发 第一章 第二篇 接着待续 很感谢大家给我的第一篇ASP.NET控件开发的支持!在写这些之前,我也看了一些例 ...
- ASP.NET自定义控件组件开发 第三章 为控件添加事件 前篇
第三章 为控件添加事件 好了,我们之前以前开发一个控件.而且也添加了属性,开发也很规范,但是那个控件还差最后一点:添加事件. 系列文章链接: ASP.NET自定义控件组件开发 第一章 待续 ASP.N ...
- [导入]Asp.net 2.0 自定义控件开发[创建自定义浮动菜单FloadMenu控件][示例代码下载]...
Asp.net 2.0 自定义控件开发[创建自定义浮动菜单FloadMenu控件][示例代码下载] 文章来源:http://blog.csdn.net/chengking/archive/2007/0 ...
- [导入]Asp.net 2.0 自定义控件开发[实现自动计算功能(AutoComputeControl)][示例代码下载]...
Asp.net 2.0 自定义控件开发[实现自动计算功能(AutoComputeControl)][重点推荐控件][示例代码下载] 文章来源:http://blog.csdn.net/chengkin ...
- Asp.net中Application Session Cookie ViewState Cache
Application 1. Application用来保存所有用户共用的信息 2. 在Asp时代,如果要保存的数据在应用程序生存期内不会或者很少发生改变,那么使用Ap ...
- 使用ASP.NET技术开发网上书店
(注意:本文档包括--知识点说明,详细,复习) 共10章 1~4 ASP.NET页面基础 5~7 ASP.NET页面重要组成部分 8~10 ASP.NET锦上添花 知识点说明: 第1章 1)Asp.N ...
最新文章
- 逻辑回归损失函数(cost function)
- 邮箱自动转发攻击邮件服务器
- Webbench的使用
- XCTF-高手进阶区:web2
- iBatis for Net 代码生成器(CodeHelper)附下载地址(已经升级为V 1.1)
- python内置模块_三分钟读懂Python内置模块collections
- AI学习笔记(九)从零开始训练神经网络、深度学习开源框架
- C#登录窗口(访问数据库)的制作,类文件的制作及使用
- Linux性能优化(十三)——CPU性能测试
- 苹果手机投屏软件_苹果手机怎样投屏到笔记本?
- perl novel可变剪接识别(1)
- ERROR: Check hive‘s usability failed, please check the status of your cluster问题解决
- 小程序云开发前端显示云存储的图片
- 企业千人千面管理模式_叶平:企业要做大,员工要从“千人千面”到“千人一面”...
- 傅立叶变换的实质-正交之美
- rpcx服务框架浅析13-远程调用
- PCB设计中数字地、模拟地、数字电源、模拟电源的处理方式
- 雷达信号处理&重学傅里叶变换(一):Radar cube &multidimensional Fourier transform
- 计算机安全原理与实践第3版PDF,windows安全原理与技术.pdf
- Asp.net URL重定向后css路径问题