网页(aspx)与用户控件(ascx)交互逻辑处理实现

几个页面(ASPX)都使用一些相同的控件,一个文本框,二个按钮(搜索和导出),为了以后好维护,把这相同的部分抽取放在一个用户控件(ASCX)上。现需要处理逻辑如下

搜索事件处理的逻辑在各个页面处理。 问题是按钮在用户控件内,Click事件怎样写在各个页面上?
每个页面的搜索结果不同的格式,因此把结果显示于各自的页面上。

用户控件的导出默认是Enabled="false" ,当有搜索结果时,它才会变为true。 它怎样知道各个页面是否已经有了结果?

用户控件的文本框的值,作为搜索条件,也就是每个页面的执行方法的参数。 aspx怎样获取用户控件ascx内的文本框的值?

下面是ascx:


代码如下:

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="SearchForm.ascx.cs" Inherits="System_Assets_Report_SearchForm" %>
<div style="margin: 3px;">
资产编号 <asp:TextBox ID="TextBoxAssetsNumber" runat="server" CssClass="textbox" Height="20px" ></asp:TextBox>
<asp:Button ID="ButtonSearch" runat="server" Text="Search" OnClick="ButtonSearch_Click" />
 <asp:Button ID="ButtonExport" runat="server" Text="导出至Excel" OnClick="ButtonExport_Click" Enabled="false" />
</div>

为了解决搜索的Click事件在各个页面执行,Insus.NET在用户控件使用委托(delegate):


代码如下:

public delegate void SearchEventHandler(object sender, EventArgs e);
public delegate void ExportEventHandler(object sender, EventArgs e);

另外为了搜索结果是否有记录,对应导出铵钮是否禁用与启用,因此在用户控件写一个带参的方法:


代码如下:

public void EnabledExportButton(bool enabled)
{
this.ButtonExport.Enabled = enabled;
}

还有就是为了把用户控件的文本框的值带结aspx.cs页面,还需要写一个修饰符为public的方法:


代码如下:

public string GetAssetsNumber()
{
return this.TextBoxAssetsNumber.Text.Trim();
}

完整的ascx.cs代码:


代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Insus.NET;
public partial class System_Assets_Report_SearchForm : BaseUserControl
{
public delegate void SearchEventHandler(object sender, EventArgs e);
public delegate void ExportEventHandler(object sender, EventArgs e);
public event SearchEventHandler SearchClick;
public event ExportEventHandler ExportClick;
public string GetAssetsNumber()
{
return this.TextBoxAssetsNumber.Text.Trim();
}
public void EnabledExportButton(bool enabled)
{
this.ButtonExport.Enabled = enabled;
}
protected void Page_Load(object sender, EventArgs e)
{
}
protected void ButtonSearch_Click(object sender, EventArgs e)
{
if (SearchClick != null)
SearchClick(this, e);
}
protected void ButtonExport_Click(object sender, EventArgs e)
{
if (ExportClick != null)
ExportClick(this, e);
}
}

各个aspx页,下面只列示一页:
 
.aspx.cs代码示例:

(0)

相关推荐

  • asp.net 用户控件中图片及样式问题

    比如,头尾用户控件.这时候控件里的图片,及css 样式就会出现问题.不同位置的文件引用同一个位置的用户控件,这时候用户控件的图片及css样式路径发生错乱. 1.如果用户控件中有服务器控件需要引用图片地址,比如ImageButton,这时候你只要按照用户控件的位置写好引用图片的链接地址就行,也就是服务器控件可以智能解析出它的确切位置 2.如果是插入图片,按照用户控件所在文件夹位置写出图片链接地址,是不行的.比如:图片文件是:/images/dian.gif . /index.aspx 和/memb

  • asp.net动态加载用户控件,关于后台添加、修改的思考

    看下下面这个典型的后台(比较粗糙):说实在,我很厌倦全部用.aspx文件去做,比如"友情连接"这个模块,就有"添加友情连接""修改友情连接""友情连接列表",简单的话,可以把"添加""修改"合成一个文件.每次都去建立一个.aspx文件.我现在的想法是用"用户控件+配置文件"去实现,虽然文件数目可能不会少很多.但在编程到一定地步,我想大家会有跟我一样的想法. 首先需要涉

  • ASP.NET动态加载用户控件的实现方法

    第一步:例如用户控件放在MyList.Ascx,然后其Control指令是: 复制代码 代码如下: <%@ Control Language="C#" AutoEventWireup="true" CodeFile="ViewComment.ascx.cs" Inherits="Control_ViewComment"%> 这时候已经有了Inherits,自带了ClassName就是其名称,如果没有,则必须创建Cl

  • asp.net动态载入用户控件的方法

    在 Page_Load 中写入下面代码: string s=base.QueryString("usctrl") ; string uc= (s== String.Empty) ? "~/myweb/userctrl/default.ascx"  :  "~/myweb/userctrl/""  + s + ".ascx" ; PlaceHolder1.Controls.Clear();    PlaceHolder

  • asp.net 动态添加多个用户控件

    用户控件代码: 代码WebControls 复制代码 代码如下: using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace xuyuanwang.myControl { public partial class Lablexuyuan : System.Web

  • asp.net 用户控件读取以及赋值

    XML内容如下: 复制代码 代码如下: <?xml version="1.0" encoding="utf-8" ?> <SystemVersion> <Item> <Version_ID>1</Version_ID> <Version_Name>CN</Version_Name> </Item> <Item> <Version_ID>2</

  • asp.net页面master页面与ascx用户控件传值的问题

    aspx 页面与ascx用户控件传值的问题 1.建立ascx控件 2.给ascx加上属性 3.将控件拖入aspx中 4.在aspx的代码中按控件ID访问属性 如: <uc3:left_Repassword ID="left_Repassword1" runat="server" /> left_Repassword1.HighLight = value; 也同样适用于master页面访问ascx ASP.Net访问母版页(MasterPage)控件.属性

  • ASP.NET用户控件技术

    我们发现,利用代码绑定技术我们可以容易的将我们的代码和内容分离开来,利用它可以建立可重用的代码,只是这种技术本身也存在着一些局限性.在本文中,我们将会一同探讨另外一种新的ASP.NET技术:用户控件.    什么是用户控件(User Controls)?  为了能更好的理解用户控件的重要性,我们先来看看一段小小的"历史".在以前的ASP当中,可重用的技术实现选择是相当受限制的.许多的开发者一般都是借助将公共的常用的子过程放到那些包含文件当中的做法来实现一定的所谓代码重用的.比如,如我们

  • 网页(aspx)与用户控件(ascx)交互逻辑处理实现

    几个页面(ASPX)都使用一些相同的控件,一个文本框,二个按钮(搜索和导出),为了以后好维护,把这相同的部分抽取放在一个用户控件(ASCX)上.现需要处理逻辑如下 搜索事件处理的逻辑在各个页面处理. 问题是按钮在用户控件内,Click事件怎样写在各个页面上? 每个页面的搜索结果不同的格式,因此把结果显示于各自的页面上. 用户控件的导出默认是Enabled="false" ,当有搜索结果时,它才会变为true. 它怎样知道各个页面是否已经有了结果? 用户控件的文本框的值,作为搜索条件,也

  • 用户控件(ASCX)向网页(ASPX)传值使用反射实现

    用户控件向网页传递值,方法非常之多,此博文尝试使用反射来实现.在站点中,建一个网页以及一个用户控件. 网页切换至设计模式,拉用户控件至网页上. Default.aspx: 复制代码 代码如下: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <%@ Register

  • JQuery为用户控件(ASCX)赋值与接口的应用

    在本次演示中,使用了接口(interface),在网页动态加载用户控件,并使用JQuery为来把网页处理的值传给用户控件. 在面向编程中,较喜欢使用接口,认为它能为不同对象之间处理到相同的行为. 复制代码 代码如下: using System; using System.Collections.Generic; using System.Linq; using System.Web; /// <summary> /// Summary description for ISetValable /

  • ASPX中的用户控件与ASP中的INCLUDE方法对比

    在ASP的年代里,为了避免经常性重复的劳动,对一些功能相似的区域或者代码,经常作成一个文件,然后通过连接(直接连接或者虚拟连接)的方法引入到ASP网页文件之中,对于一个很大的引用了很多ASP文件就相当于一个文件被分成了很多块,彼此文件之间的数据是可以自由共享的(除了函数之中的数据).    ASPX的用户控件就与INCLUDE有很大的不同了,它的最大特点就是在于他是以包装好的对象的形式呈现,通过我们的编程,可以将一个公用的事例抽象出来,将一些功能和方法总结出来,作成相应的函数和属性供外部的事件调

  • 利用委托把用户控件的值显示于网页案例应用

    Asp.net开发要求,就是用户控件(UserControl)是集成一个功能,需要处理好的数据,然后存数据库中并显示于网页上,让用户能检测到处理的数据情况. 本演示中,Insus.NET只是作了一个简单的举例而已,并应用了委托来实现.为了让大家更能理解,可以先看看操作动画演示:在你新建一站点上,创建一个PageB.aspx网页以及UcB.ascx用户控件,在UcB.ascx上拉一个TextBox和CheckBox以及Button控件: 复制代码 代码如下: UcB.ascx <%@ Contro

  • web用户控件调用.aspx页面里的方法

    现在把此web用户控件添加到一.aspx页面中.要实现单击用户控件中的button控件把搜索出来的结果数据绑定到.aspx页面的gridview控件上去,如何实现呢? 如果gridview控件是放在.ascx文件中的话,那我们直接把搜索出来的数据绑定到它上面就行了.但现在gridview是放在.aspx文件里,也就是说web用户控件要如何才能访问母页面的控件,把数据绑定到母页面的控件上去? 解决方法: 1.先在.aspx页面的后台文件.aspx.cs中添加一个绑定数据的方法,代码如下: 复制代码

  • ASP.NET用户控件如何使用

    用户控件用来做什么? 用户控件常常用来统一网页显示风格. 关于用户控件 1.用户控件的扩展名为.ascx. 2.用户控件中没有@Page指令,而是包含@Control指令. 3.用户控件不能做为独立文件运行,必须创建ASP.net页面,后添加. 4.在用户控件上可以使用相同的XHTML元素和Web服务器控件.例如,Button可以放到用户控件中,并创建按钮的事件处理. 创建用户控件 在vs中新建项中选择用户控件.(也可以将单个文件转化为用户控件.) 制作用户控件. 例如: 用户控件代码: Web

  • ASP.NET动态添加用户控件的方法

    本文实例讲述了ASP.NET动态添加用户控件的方法.分享给大家供大家参考.具体实现方法如下: 为了让用户控件能ASP.NET页面实现动态添加,首先写一个接口IGetUCable,这个接口有一个函数,返回对象类型是UserControl. using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; /// <summary> /// Summar

随机推荐