asp.net自定义控件回发数据实现方案与代码

在实现asp.net的自定义控件中,若要实现数据的回发或者post数据,那自义控件必须实现IPostBackDataHandler接口, 在该接口中有两个方法一个是LoadPostData,另一个是RaisePostDataChangedEvent。第一个方法用于在回发数据时,填充自定义控件的相关属性,第二个方法用于激发控件相关的事件。也就是说这两个方法,应该是在提交数据的时候进行调用的。

可是,我们在实现自己的控件时,虽然继承了 IPostBackDataHandler,但是在提交数据的时候确发现程序没有去调用 IPostBackDataHandler 中的方法。经过研究发现,若要实现数据回发,除了需要实现IPostBackDataHandler接口外,还需要将控件注册成需要回发数的控件。要实现注册,就是在自定义控件里重写OnPreRender方法,并在该方法中调用Page.RegisterRequiresPostBack(this);这句代码。写法如下:

代码如下:

public class MyControl : WebControl, IPostBackDataHandler{

protected override void OnPreRender(EventArgs e)
{
Page.RegisterRequiresPostBack(this);

base.OnPreRender(e);
}

}

通过实现以上代码,当在提交数据时,就会发现IPostBackDataHandler接口的方法,就被调用了。接下来,怎么做,你懂的啊。

(0)

相关推荐

  • asp.net DropDownList自定义控件,让你的分类更清晰

    看到Discuz是2个下拉列表进行合并的,网上找了一些资料,然后写了这个小源码,在这里和大家分享一下! 运行效果图,如下所示(深黑的地方选不中,因为那是上一级的分类): 项目结构图如下所示: Controls类库SmartDropDownList.cs代码如下所示: SmartDropDownList.cs 复制代码 代码如下: using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using Syste

  • asp.net自定义控件中注册Javascript问题解决方案

    复制代码 代码如下: protected override void OnPreRender(EventArgs e) { base.OnPreRender(e); RenderJS(); } private void RenderJS() { if (!Page.ClientScript.IsClientScriptBlockRegistered(SCRIPT_ID))//如果还没有注册语句,则注册 { Page.ClientScript.RegisterClientScriptBlock(t

  • 浅谈ASP.NET中最简单的自定义控件

    ASP.NET用户控件一般适用于产生相对静态的内容,所以没有builtin的事件支持.本文讨论用户控件返回事件的方法. 假定用户控件(UserControl.ascx)中包含按钮控件AButton,希望实现按AButton按钮时,包含该用户控件的页面可以接收到事件.为此,小鸡射手在用户控件和页面的代码中分别作了处理. UserControl.ascx.cs中的处理:         1. 定义public的事件委托,如ClickEventHandler;         2. 在UserCont

  • asp.net自定义控件代码学习笔记

    效果:在放这个控件的页面: XML/HTML 复制代码 代码如下: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="test6.aspx.cs" Inherits="test6" %> <%@Register TagPrefix="custom" Namespace="myComponents" %>

  • Asp.net 动态加载用户自定义控件,并转换成HTML代码

    如果页面单纯的使用js来创建,要写大量的代码,而且不直观. 在asp.net中,其实我们可以创建用户自定义控件,通过Ajax请求返回用户自定义控件HTML代码. 复制代码 代码如下: public static string RangerUsControl(string controlName) { StringBuilder build = new StringBuilder(); HtmlTextWriter htmlWriter = new HtmlTextWriter(new Strin

  • Asp.net自定义控件之加载层

    本文旨在给大家开发自定义控件(结合js)一个思路,一个简单的示例,可能在实际项目中并不会这样做.  先来看看效果: 1.在静态页面里开发好想要的效果 jQuery.extend({ openloading: function (options) { var defaults = { msg: '数据提交中...', img: 'loading.gif' }; var opts = $.extend(defaults, options); $("body").append("&

  • asp.net 自定义控件实现无刷新上传图片,立即显示缩略图,保存图片缩略图

    如图: 点击浏览,选择图片之后,右面显示图片 第一步: 创建CtFileUpLoad.ascx 复制代码 代码如下: <%@ Control Language="C#" AutoEventWireup="true" CodeFile="CtFileUpLoad.ascx.cs" Inherits="WebParts_CtFileUpLoad" %> <table cellpadding="0&quo

  • asp.net动态加载自定义控件的方法

    本文实例讲述了asp.net动态加载自定义控件的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: //usercontrol.IndexOper为自定义控件 usercontrol.IndexOper uc=(usercontrol.IndexOper)Page.LoadControl("自定义控件路径"); uc.ID = "uc";  //定义唯一标示 //OperContent为PlaceHolder控件 OperContent.Contr

  • asp.net中使用自定义控件的方式实现一个分页控件的代码

    一.概述 在web开发中,常常需要显示一些数据,而为了方便排版及浏览,我们只需要显示所有记录中的一部分.一般情况下,我们采用分页来实现这个需求.实现分页的方法多种多样,在本文中,我们采用了一个分页空间来记录记录总数.当前页.总页数及页面大小等.为了有一个直观上的印象,先展示该控件运行后的效果,效果如下图所示: 二.实现方案 为了实现该效果图,在asp.net中,可以使用Custom Controls and User Controls两种方式,User Controls的实现方式及其简单,而且使

  • Asp.net清空控件值的方法(可自定义控件类型)

    由于项目收尾,最近忙着做一些方法的优化,整理了一些分享给大家. 当页面内有许多控件,我们在需要清空其值的时候,一个个清空未免太麻烦.于是写了这么一个方法,可以自定义清空控件的类型,灵活应对业务需求. 复制代码 代码如下: /// <summary>重置方法控件类型枚举</summary> /// <remarks>求知域http://www.qqextra.com 2012-12-28</remarks> public enum ReSetType { //

随机推荐