几个页面(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. Google 收购 Android 十周年 全面解读Android现状

    --訪传智播客Android学科教学总监传智·平一指 Android以前是一家创立于旧金山的公司的名字,该公司于2005年8月份被Google收购,并从此踏上了飞速发展的道路.经过十年的发展,它已经发 ...

  2. Yahoo关于性能优化的N条军规

    一. Yahoo的军规条例: 谨记:80%-90%的终端响应时间是花费在下载页面中的图片,样式表,脚本,flash等:详细的解释来这里查:http://developer.yahoo.com/perf ...

  3. 【Linux】Ctentos下载

    百度输入:Download Centos 在百度搜索Download Centos然后进入Centos下载官网 点击上述标记的Download Centos,则会出现如下界面,并且点击"Mo ...

  4. 乐鑫esp8266基于freeRtos实现私有服务器本地远程OTA升级

    目录 一.前言: 二.回顾下OTA的流程: 三.lwip网络框架的知识的使用: 四.如何处理服务器返回的数据? 五.扇区的擦除和烧写? 六.如何调用? 七.好好享用吧! 八.下载: 九.工程截图: 代 ...

  5. docker build 的 cache 机制

    cache 机制注意事项 可以说,cache 机制很大程度上做到了镜像的复用,降低存储空间的同时,还大大缩短了构建时间.然而,不得不说的是,想要用好 cache 机制,那就必须了解利用 cache 机 ...

  6. Struts2中文件下载

    在struts.xml中配置如下 <action name="download" class="cn.itcast.domain.User" method ...

  7. (转)解决WinDbg调试Dump文件不同环境mscordacwks.dll版本问题

    解决WinDbg调试Dump文件不同环境mscordacwks.dll版本问题   开发人员提交一个dump文件(Windows Server 2008 R2),当前调试环境Windows Serve ...

  8. Js日常笔记之变量删除

    在Javascript是可以使用delete来手动删除变量,通过这样的方法让GC来回收内存,但在JS中并不是所有的对象都可以被删除的 JS中通过 var\function 声明因含有DontDelet ...

  9. JS JSOP跨域请求实例详解

    JSONP(JSON with Padding)是JSON的一种“使用模式”,可用于解决主流浏览器的跨域数据访问的问题.这篇文章主要介绍了JS JSOP跨域请求实例详解的相关资料,需要的朋友可以参考下 ...

  10. Asp.net2.0里的SessionPageStatePersister

    备注: ASP.NET 页可在处理和提供任何网页所必需的原本无状态 HTTP 请求与响应之间存储 Page 状态信息.此状态称为“视图状态”. ASP.NET 的默认持久性机制是使用 HiddenFi ...