自定义控件学习笔记(七)

自定义控件学习笔记(七)--偷偷带参数的提交

1。要点

1)偷偷带参数的提交的意思:用户提交数据的时候,并没有输入任何值,但是控件可以处理到一个隐含的信息
,从而分辨到底是哪个控件在提交数据
2)继承IPostBackEventHandler,而不是IPostBackDataHandler
3)IPostBackEventHandler只有一个方法要实现:RaisePostBackEvent
4)这个方法可以带一个参数

2。控件

 

using  System;
using  System.Web.UI;

namespace  TestCustomControl
{
    
public class PostBackWithString:Control,IPostBackEventHandler
    
{
        
string text="";
        
        
public event EventHandler Click;
        
        
public string Text
        
{
            
get{return text;}
            
set{text=value;}
        }

        
        
public void RaisePostBackEvent(string eventArgument)
        
{
            
if(Click!=null)
            
{
                Click(
this,new EventArgs());
            }

        }

        
        
protected override void Render(HtmlTextWriter writer)
        
{
            writer.WriteBeginTag(
"a");
            
if(ID!=null)
                writer.WriteAttribute(
"ID",ClientID);
            writer.WriteAttribute(
"href","javascript:"+Page.ClientScript.GetPostBackEventReference(new PostBackOptions(this)));
            writer.Write(HtmlTextWriter.TagRightChar);
            
if(Text.Length>0)
            
{
                writer.Write(Text);
            }

            
            writer.WriteEndTag(
"a");
        }

    }

}

 

3。用法

前台
 
 
<% @ Page Language="C#" AutoEventWireup="true" CodeFile="PostBackWithString.aspx.cs" Inherits="TestCustomControl_First_PostBackWithString"  %>
<% @ Register Assembly="PostBackWithString" Namespace="TestCustomControl" TagPrefix="Surance"  %>
<! 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 >
    
< Surance:PostBackWithString  ID ="P1"  runat ="server"  OnClick ="P1_OnClick"  Text ="Test It"   />
    
</ div >
    
</ form >
</ body >
</ html >
后台
 
 
protected   void  P1_OnClick( object  sender, EventArgs e)
    
{
        Response.Write(
"Out");
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值