意图是这样的:
管理页面中,总会有一些新增啊,删除啊,修改啊之类的按钮,为了方便,我想做个用户控件;
这个用户控件,里面有三个按钮,新增、修改、删除;这个用户控件要在多个页面上出现,当然,修改与删除的对像也不相同;所以,这个用户控件,在不同的页面中,这三个按钮会使用不同的事件;
(如果只是加事件,直接双击按钮就可以加了)
用户控件的代码
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="UserLogin.ascx.cs" Inherits="UserLogin" %>
<html xmlns="http://www.w3.org/1999/xhtml" >
<body>
<table border="1">
<tr>
<td>用户名:</td>
<td><asp:TextBox ID="txt1" runat="server"></asp:TextBox></td>
</tr>
<tr>
<td>密 码:</td>
<td><asp:TextBox ID="txt2" TextMode="password" runat="server"></asp:TextBox></td>
</tr>
<tr>
<td><asp:Button ID="ButAdd" runat="server" Text="新增" OnClick="ButAdd_Click" />
<asp:Button ID="ButMod" runat="server" Text="修改" OnClick="ButMod_Click" />
<asp:Button ID="ButDel" runat="server" Text="删除" OnClick="ButDel_Click" />
</td>
<td><asp:LinkButton ID="LinkButton1" Text="登陆" OnClick="MyOnClick" runat="server" ></asp:LinkButton></td>
</tr>
</table>
</body>
</html>
用户控件C#中的代码
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
//using System.Collections.Generic;
//using System.Text;
public partial class UserLogin : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
}
//添加属性
public string UserName
{
get { return txt1.Text; }
set { txt1.Text = value; }
}
//添加属性
public string PassWord
{
get { return txt2.Text; }
set { txt2.Text = value; }
}
//定义一个委托
public delegate void userEvent(object sender, EventArgs arg);
//
//添加事件
public event userEvent Login; //添加事件句柄
protected void MyOnClick(object Sender, EventArgs e)
{
if (Login != null)
Login(this, new EventArgs()); //激活Login事件
}
////定义一个委托
//public delegate void userEvent(object sender, EventArgs arg);
////
//添加三个事件
public event userEvent Add;
public event userEvent Delete;
public event userEvent Modify;
//
#region 控件中按钮的事件
protected void ButAdd_Click(object sender, EventArgs e)
{
if (this.Add != null)
this.Add(this, e);
}
protected void ButDel_Click(object sender, EventArgs e)
{
if (this.Delete != null)
this.Delete(this, e);
}
protected void ButMod_Click(object sender, EventArgs e)
{
if (this.Modify != null)
this.Modify(this, e);
}
#endregion
}
上面用到了事件与委托;利用用户控件中的按钮来触发自己定义的事件;
那么,在aspx页面中引用这个控件时:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<%@ Register Src="UserLogin.ascx" TagName="UserLogin" TagPrefix="uc1" %>
<!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 style="margin-left:0px">
<form id="form1" runat="server">
<div>
<uc1:UserLogin ID="UserLogin1" OnAdd="ButAdd_Click" OnDelete="ButDel_Click" OnModify="ButMod_Click" OnLogin="OnLoginPress" runat="server" />
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox></div>
</form>
</body>
</html>
在这个aspx页面的C#文件中,有这样一些事件
protected void OnLoginPress(Object Render, EventArgs e)
{
TextBox1.Text = UserLogin1.UserName;
TextBox2.Text = UserLogin1.PassWord;
}
protected void ButAdd_Click(object sender, EventArgs e)
{
//this.Response.Write(sender.GetType().ToString());
TextBox1.Text = "添加了数据!";
}
protected void ButDel_Click(object sender, EventArgs e)
{
TextBox1.Text = "我已删除";
//this.Response.Write("删除");
}
protected void ButMod_Click(object sender, EventArgs e)
{
TextBox1.Text = "修改了数据!";
//this.Response.Write("修改");
}
那么,在不同的aspx文档中,我就可以写不同的事件了;很简单吧;
这样,我们还可以在用户控件中判断当前登录用户的权限,例如,如果没有删除权限,删除按钮就不出现;
分享到:
相关推荐
ASP.NET的用户控件 本文介绍如何在ASP.NET中创建用户控件,控件属性的动态修改以及控件的事件出发机制
Asp.Net为用户控件添加属性和事件,网上搜集来的,希望对大家有用
分页是Web应用程序中最常用到的功能之一,在ASP.NET中,虽然自带了一个可以分页的DataGrid(asp.net 1.1)和GridView(asp.net 2.0)控件,但其分页功能并不尽如人意,如可定制性差、无法通过Url实现分页功能等,...
Asp.net Treeview 控件常用属性.
在 W3School,我们提供完整的 ASP.NET 参考手册,其中包括内建对象和组件,以及它们的属性和方法。 ASP.NET 实例 ASP.NET 实例 一系列的 ASP.NET 实例。 内容目录 ASP.NET 简介 本章解释 ASP.NET 的概念。 ASP...
在 ASP.NET 的开发中 Web 用户控件的开发和使用是一项必不可少的技术 1.简介 2.创建 Web 用户控件 3.在 Web 窗体中使用 Web 用户控件 4.添加属性 5.添加方法 6.添加自定义事件 7.控件内客户端角本访问服务器控件的...
asp.net中GridView控件的各种操作方法,使用大全,附加数据库。包含:GridView导入导出,多层嵌套,表头表尾,分页排序,结合控件,设置属性,增除删改,主键索引...物超所值,亲情放送!~
第1章 服务器控件概述及开发环境部署 .1 1.1 自定义服务器控件 1 1.2 服务器控件在软件开发过程中的作用 1 ...附录a .net 3.5技术教程系列——collection/asp.net ajax/ silverlight/jquery ...646
ASP.NET 引入了服务器控件的概念,允许Web开发人员 在服务器端识别这些元素,并对它们进行控制。服务器控 件就是页面上能够被服务器端代码访问和操作的任何控 ... ASP.NET服务器控件都是页面上的对象,采用事件驱动
基于 ExtJS 的专业 ASP.NET 控件库 每个控件的编写都尽量符合 ASP.NET 的开发习惯,从控件和属性的命名到复杂的 AJAX 交互,都让传统的 ASP.NET 开发人员感到很舒服
Chartlet是一个免费的ASP.NET使用的图表控件,它让你可以用最少的代码创造出非常漂亮的统计图表,我们的宗旨是让你的使用越简单越好,现在你只需要设置一个属性,绑定一个数据源 就可以轻松创建一个非常漂亮的图表!...
action属性指明当前表单提交之后由哪个程序来处理,这个处理程序可以是任何动态网页或者servlet或者CGI(Common Gateway Interface),在asp.net里面一般都是都aspx页面来处理。 method属性指明form表单的提交方式。...
ListBox控件 功能:在Web页中创建列表框,并允许用户从列表中选择一项或多项。 属性: 1、Rows属性:表示所能显示的列表项的行数,如果列表项的数目大于Rows值,则会自动产生滚动条,以便选择更多的选项。 2、...
asp.net2.0的一些常用控件的使用和重要属性的设置
把常用的.NET控件的属性及常用方法整理了下~希望对入门的人有用
ASP.NET ajax每个控件的使用和属性
asp.net中TextBox获得焦点和失去焦点——客户端JavaScript事件 自己亲手做的 ,虽然很简单,但是很实用
提供了ASP.NET 基于会话的安全性,从而保证了显示的图表数据,使所有敏感图表非常安全。 强大的美学增强 图表不仅仅采用点阵表示,最重要的是数据的外观显示。为了轻松的显示您的图表,UltraWebChart提供了内置的...
1.2 ASP.NET控件 10 1.2.1 ASP.NET控件概览 11 1.2.2 HTML控件 12 1.2.3 理解和处理控件事件 12 1.2.4 视图状态 17 1.3 ASP.NET页面 20 1.3.1 动态编译 20 1.3.2 控件树 23 1.3.3 使用代码隐藏页面 24 1.3.4 处理...
一、控件特点: 1、使用方便,只需要从工具栏直接拖到页面即可自动验证,零代码使用。 2、自动完成客户端以及服务器的验证码验证,Ajax验证,随用户输入即时 验证并友好提示。 3、可自定义验证码图片外观。 4、有...