Asp.Net中用户自定义控件实现IPostBackDataHandler

本文介绍如何通过实现 IPostBackDataHandler 接口来保存 ASP.NET 用户自定义控件的状态。主要讨论 LoadPostData 方法用于检测控件状态是否发生变化及 RaisePostDataChangedEvent 方法触发状态改变事件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在用户自定义控件过程中,需要在回传过程中保存控件的某个值,需要实现IPostBackDataHandler接口,此接口有两个方法:
  1.public bool LoadPostData(string postDataKey, System.Collections.Specialized.NameValueCollection postCollection)
  2.public void RaisePostDataChangedEvent()
其中第一个方法的作用是,调入回传的数据,并确定数据是否在上次操作中进行了更改;第二个方法作用是触发数据更改的事件。

例子:


public class ImplIPostBackDataHandlerDemo : System.Web.UI.WebControls.WebControl, IPostBackDataHandler
{
    
public DateTime SelectedDateTime
    
{
        
get
        
{
            
if (null == this.ViewState["SelectedDateTime"])
                
return DateTime.MinValue;
            
return Convert.ToDateTime(this.ViewState["SelectedDateTime"]);
        }

        
set
        
{
            
this.ViewState["SelectedDateTime"= value;
        }

    }


    
/// <summary>
    
/// SelectedDateTimeChanged事件
    
/// </summary>

    public event EventHandler SelectedDateTimeChanged
    
{
        add
        
{
            
base.Events.AddHandler(OnSelectedDateTimeChanged, value);
        }

        remove
        
{
            
base.Events.RemoveHandler(OnSelectedDateTimeChanged, value);
        }

    }


    
protected void OnSelectedDateTimeChange(EventArgs e)
    
{
        EventHandler handler 
= (EventHandler)base.Events[SelectedDateTimeChanged];
        
if (handler != null)
        
{
            handler(
this, e);
        }

    }



    
IPostBackDataHandler Members
}

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值