您的位置:首页 > 其它

用户控件使用事件与调用页面交互

2007-07-29 14:33 507 查看
1.定义事件参数类

using System;
 

namespace ASPNetCookbook.CSExamples
{
/// <summary>

/// This class provides the definition of the custom event arguments used

/// as the event arguments for the message sent from this control. This

/// class simply inherits from System.EventArgs and adds a message property.

/// </summary>

public class MessageEventArgs

{
private String mMessage;

 

    /// <summary>

    /// This property provides the ability to get/set the message in the

    /// event args

    /// </summary>
    public String message

    {     get

     {
        return (mMessage);

     }
 

     set

     {
     mMessage = value;

     }
    } // message

} // MessageEventArgs

}
2.定义控件代码

Test.ascx

<asp:Button ID="btnSendMessage" runat="server"


               Text="Send Message"


               OnClick="btnSendMessage_Click" />


 

Text.ascx.cs


using System;


 

namespace ASPNetCookbook.CSExamples


{


/// <summary>


    /// This class provides the code-behind for


    /// CH05UserControlCommSourceCS.ascx


    /// </summary>


    public partial class CH05UserControlCommSourceCS : System.Web.UI.UserControl


    {


      // define the delegate handler signature and the event that will be raised


      // to send the message


      public delegate void customMessageHandler(Object sender,


                                    MessageEventArgs e);


      public event customMessageHandler OnSend;


 

 

      ///***********************************************************************


      /// <summary>


      /// This routine provides the event handler for the send message button


      /// click event. It creates a new MessageEventArgs object then raises


      /// an OnSend event


      /// </summary>


      ///


      /// <param name="sender">Set to the sender of the event</param>


      /// <param name="e">Set to the event arguments</param>


      protected void btnSendMessage_Click(object sender,


                                        EventArgs e)


      {


        MessageEventArgs messageArgs = new MessageEventArgs();


        messageArgs.message = "This message came from the source user control";


 

        if (OnSend != null)


        {


          OnSend(this, messageArgs);


        }


     }  // btnSendMessage_Click


}  // CH05UserControlCommSourceCS


}


调用页面调用


 

Test.aspx


 

<asp:lable id="labMessage" runat="server"/>


<table width="60%" align="center" border="0">


          <tr>


            <td class="PageHeading">


              Source User Control:


            </td>


          </tr>


      <tr>


         <td bgcolor="#ffffcc" align="center" height="75">


             <ASPCookbook:SourceControl id="ucSource" runat="server" />


         </td>


      </tr>


</table>


 

Test.aspx.cs

 

protected void Page_Load(object sender, EventArgs e)


    {


//在调用页面中挂接控件事件    


ucSource.OnSend +=


new CH05UserControlCommSourceCS.customMessageHandler(this.updateLabel);


    }


 

private void updateLabel(Object sender,


                    MessageEventArgs e)


    {


    // update the label with the message in the event arguments


    labMessage.Text = e.message;


    }


 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: