几个页面(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)与用户控件(ascx)交互逻辑处理实现的更多相关文章

  1. 在用户控件(ASCX)创建用户控件(ASCX)

    "我建了两个ascx,ascxA,ascxBascxA中放了一个PlaceHold,ascxB中放了一个textBoxascxA在page_load中动态创建了5个ascxB但是页面上什么都 ...

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

    用户控件向网页传递值,方法非常之多,此博文尝试使用反射来实现.在站点中,建一个网页以及一个用户控件. 网页切换至设计模式,拉用户控件至网页上. Default.aspx: <%@ Page La ...

  3. 对用户控件(ascx)属性(property)赋值

    对用户控件(ascx)属性(property)赋值 Insus.NET写此博文,是对用户控件(ASCX)的属性赋值经验与技巧分享.是这样子的,在做新闻站点时,一般都会有分很多类别. 在站点首页会显示最 ...

  4. .net 用户控件ascx.cs注册js脚本代码无效果

    在.net web项目中碰到一个比较奇怪的问题,网上没找到解决方案,先自己mark一下 问题描述: 添加一个用户控件ascx,在后端.cs添加js注册脚本,执行后没有弹出框 注册脚本为: this.P ...

  5. ASP.NET MVC中加载WebForms用户控件(.ascx)

    原文:ASP.NET MVC中加载WebForms用户控件(.ascx) 问题背景 博客园博客中的日历用的是ASP.NET WebForms的日历控件(System.Web.UI.WebControl ...

  6. 在网页中引用DWG控件,交互绘图,和响应鼠标点击对象的方法

    在网页中引用DWG控件,交互绘图,和响应鼠标点击对象的方法 [MXDRAW CAD控件文档] 下面帮助的完整例子,在控件安装目录的Sample\Ie\iedemo.htm中. 1.      主要用到 ...

  7. net7:Web用户控件ascx的使用及其动态加载

    原文发布时间为:2008-07-30 -- 来源于本人的百度文章 [由搬家工具导入] Web用户控件test.ascx的源代码: using System;using System;using Sys ...

  8. mvc 用户控件 ascx 获取 View 页面的值

    <%Html.RenderAction("AscxSideNav", "UI", new {itemName=ViewData["ItemNam ...

  9. vs2010 用户控件拖到aspx页面不可用

    错误描述: 在web项目中添加一个用户控件,直接拖动用户控件ascx到aspx页面出现a标签而不是控件标签 解决办法: 把“源”切换为“设计”视图,然后拖动ascx用户控件到页面即可:

随机推荐

  1. html热点区域

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  2. 05-hibernate注解-多对一单向外键关联

    多对一单向外键 1,多方持有一方的引用,比如:多个学生对应一个班级(多对一) 2,@ManyToOne(cascade={CascadeType.ALL},  fetch=FetchType.EAGE ...

  3. 自己动手,制作真正的.net Framework 3.5 SP1离线安装包(转)

    .NET Framework 3.5 SP1发布了,兴冲冲…下载,当然是完全离线安装包.net Framework 3.5 Service pack 1(Full Package) 231MB,网络慢 ...

  4. 【转】H.264(H264)视频文件的制作

    转自:http://blog.csdn.net/caoshangpa/article/details/51166109 一.准备工作 1.下载并安装优酷客户端 2.下载ffmpeg可执行文件,解压可用 ...

  5. 建立第一个wcf程序

    使用管理员权限启动vs (否者将导致ServiceHost开启失败 权限不足) 1.创建一个空的控制台程序 2.添加程序集引用 System.ServiceModel 3.写入一些代码 如下 usin ...

  6. 【转载】使用Exp和Expdp导出数据的性能对比与优化

    转自:http://blog.itpub.net/117319/viewspace-1410931/ 序:这方面的文章虽然很多人写过,但是结合实际进行详细的对比分析的不多,这里,结合所在公司的行业,进 ...

  7. NGUI拖拽简介

    挂上UIDragDropItem就可以实现拖拽,按钮监听Drop消息即可实现对拖放的监听. UIDragDropItem有一个Clone On Drag选项,勾上可以克隆,但会被ScrollView遮 ...

  8. 基于FPGA的DDR3多端口读写存储管理系统设计

    基于FPGA的DDR3多端口读写存储管理系统设计 文章出处:电子技术设计 发布时间: 2015/03/12 | 1747 次阅读 每天新产品 时刻新体验专业薄膜开关打样工厂,12小时加急出货   机载 ...

  9. [gj]三国攻势图

    三国攻势图 参考: 估计你对三国故事有点兴趣,我给你看看图说三国(大概的):

  10. jsp的页面包含——静态包含、动态包含

    一.静态包含:包含的文件可以是jsp文件.html文件.文本文件或者一段java代码.<%@ include file="要包含的文件路径"%> 实质是先将所包含的文件 ...