GetPostBackEventReference加RaisePostBackEvent实现自定义控件中回调传参

本文介绍ASP.NET中自定义控件MyButton的创建与使用方法,演示了如何通过实现IPostBackEventHandler接口来处理按钮点击事件,并在不进行页面完全刷新的情况下更新页面内容。

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

RaisePostBackEvent(string eventArgument)
说明:回调方法
参数:eventArgument,返回客户端回调参数值

Page.ClientScript.GetPostBackEventReference(control,string)
说明:客户端指定页面control控件中使用string字符串,以便回调回服务器
参数:control,实现PostBackOptions类,如控件,一般用this
     string,指定字符串值

示例:
类文件:
using System;
using System.Web.UI;
using System.Collections;
using System.Collections.Specialized;

namespace CustomControls
{

    
public class MyButton : Control, IPostBackEventHandler
    {
        
private int i = 0;

        
//回调函数,回调参数值:eventArgument
        public void RaisePostBackEvent(string eventArgument)
        {
            Context.Response.Write(
""+eventArgument+"次点击");
            i 
= int.Parse(eventArgument);
        }

        
//控件呈现,Control类重写,传送参数至客户端
        protected override void Render(HtmlTextWriter output)
        {
            output.Write(
"<input type=\"button\" name = " + this.UniqueID +
               
" Value = 'Click Me' onclick=\"javascript:"+Page.ClientScript.GetPostBackEventReference(this,(i+1).ToString())+"\"/>");
        }
    }
}
调用控件页面:

<%@ Register TagPrefix="CustomControl" Namespace="CustomControls" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    
<title>无标题页</title>
</head>
<body>
    
<form id="form1" runat="server">
    
<div>
    
<CustomControl:MyButton runat="server" ID="Button">
    
</CustomControl:MyButton>
    
</div>
    
</form>
</body>
</html>

注:
当UseSubmitBehavior 属性为 false 时,GetPostBackEventReference方法可以与Button控件一起使用
<%@ Register TagPrefix="CustomControl" Namespace="CustomControls" %>
注册使用自定义控件,TagPrefix指定控件前缀,Namespace指定控件所在命名空间
调用自定义控件则如下
<TagPrefix指定名称:自定义控件类名></TagPrefix指定名称:自定义控件类名>

转载于:https://www.cnblogs.com/ywkpl/archive/2007/12/14/995592.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值