Asp.net中用户自定义控件 ascx的使用
使用ascx目的就是为了提高某部分功能的重复利用,我简单通过源代码说一下对它的参数的输入和数出。
我们以省市区三级连动为例子。
vs2005下ascx页面的代码:
<table width="100%" border="0" cellpadding="0" cellspacing="0"> <tr> <td> <asp:DropDownList id="ddlProvince" runat="server" Width="100px" AutoPostBack="True" OnSelectedIndexChanged="ddlProvince_SelectedIndexChanged"> </asp:DropDownList> <asp:UpdatePanel ID="UpdatePanel1" runat="server" RenderMode="Inline"> <ContentTemplate> <asp:DropDownList id="ddlCity" runat="server" Width="100px" AutoPostBack="True" OnSelectedIndexChanged="ddlCity_SelectedIndexChanged"> </asp:DropDownList> </ContentTemplate> <Triggers> <asp:AsyncPostBackTrigger ControlID="ddlProvince" EventName="SelectedIndexChanged" /> </Triggers> </asp:UpdatePanel> <asp:UpdatePanel ID="UpdatePanel2" runat="server" RenderMode="Inline"> <ContentTemplate> <asp:DropDownList id="ddlDistrict" runat="server" Width="100px"> </asp:DropDownList> </ContentTemplate> <Triggers> <asp:AsyncPostBackTrigger ControlID="ddlCity" EventName="SelectedIndexChanged" /> </Triggers> </asp:UpdatePanel> </td> </tr> </table>
ascx后台代码:
public partial class UserControl_ProvinceAndCityAndDistrict : System.Web.UI.UserControl
{
///// <summary>
///// 选择区域的iD
///// </summary>
protected string _districtValue;
[Bindable(true), Category("Appearance"), DefaultValue("")]
public string districtValue
{
get { return _districtValue; }
set { _districtValue = value; }
}
protected string _cityValue;
[Bindable(true), Category("Appearance"), DefaultValue("")]
public string cityValue
{
get { return _cityValue; }
set { _cityValue = value; }
}
protected string _provinceValue;
[Bindable(true), Category("Appearance"), DefaultValue("")]
public string provinceValue
{
get { return _provinceValue; }
set { _provinceValue = value; }
}
private void setValue()
{
if (_provinceValue != string.Empty)
{
this.ddlProvince.SelectedItem.Text = _provinceValue;
}
if (_cityValue != string.Empty)
{
this.ddlCity.SelectedItem.Text = _cityValue;
}
if (_districtValue != string.Empty)
{
this.ddlDistrict.SelectedItem.Text = _districtValue;
}
}
public string getValue()
{
return this.ddlProvince.SelectedItem.Text + "," + ddlCity.SelectedItem.Text + "," + ddlDistrict.SelectedItem.Text;
}
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
setProvince();
this.ddlProvince.SelectedIndex = 0;
setCity(Convert.ToInt32(this.ddlProvince.SelectedValue));
this.ddlCity.SelectedIndex = 0;
setDistrict(Convert.ToInt32(this.ddlCity.SelectedValue));
setValue();
}
}
private void setProvince()
{
CallCenter.BLL.sys_Province province = new CallCenter.BLL.sys_Province();
DataSet ds = province.getProvinceList();
this.ddlProvince.DataSource = ds.Tables[0];
this.ddlProvince.DataValueField = "provinceid";
this.ddlProvince.DataTextField = "provincename";
this.ddlProvince.DataBind();
}
private void setCity(int provinceId)
{
CallCenter.BLL.sys_City city = new CallCenter.BLL.sys_City();
DataSet ds = city.getCityList(provinceId);
this.ddlCity.DataSource = ds.Tables[0];
this.ddlCity.DataValueField = "cityid";
this.ddlCity.DataTextField = "cityName";
this.ddlCity.DataBind();
}
private void setDistrict(int cityId)
{
CallCenter.BLL.sys_District district = new CallCenter.BLL.sys_District();
DataSet ds = district.getDistrictList(cityId);
this.ddlDistrict.DataSource = ds.Tables[0];
this.ddlDistrict.DataValueField = "districtid";
this.ddlDistrict.DataTextField = "districtname";
this.ddlDistrict.DataBind();
}
protected void ddlProvince_SelectedIndexChanged(object sender, EventArgs e)
{
setCity(Convert.ToInt32(this.ddlProvince.SelectedValue));
this.ddlCity.SelectedIndex = 0;
setDistrict(Convert.ToInt32(this.ddlCity.SelectedValue));
}
protected void ddlCity_SelectedIndexChanged(object sender, EventArgs e)
{
setDistrict(Convert.ToInt32(this.ddlCity.SelectedValue));
}
}
使用aspx页面的后台调用部分代码:
如何传入参数,对于ascx的参数一般通过自定义页面属性来实现的。在ascx的页面我定义了几个属性
provincevalue,cityvalue,districtvalue,把你所需要传入的参数通过下面的方式给它就可以了,至于出入后你需要怎么处理你就自己操作了,上面有我的简单处理方式。
string[] strAddress=ds.Tables[0].Rows[i]["value"].ToString().Split(',');
this.ProvinceAndCityAndDistrict1.provinceValue = strAddress[0];
this.ProvinceAndCityAndDistrict1.cityValue = strAddress[1];
this.ProvinceAndCityAndDistrict1.districtValue = strAddress[2];
从ascx获取输出的东西的话,我目前采用的是通过公共函数调用来实现的
比如在对aspx页面的信息进行保存的时候,我要获取到当前所选择的省市区信息,我是通过方法getValue()来获取返回的字符窜的,你可以根据自己的需要来定义适当的方法。
this.ProvinceAndCityAndDistrict1.getValue();
希望我通过简单的举例说明能够帮助大家对ascx的使用有个初步简单的了解。有好的方法相互交流,共同进步!
Asp.net中用户自定义控件 ascx的使用的更多相关文章
- 最简实例演示asp.net5中用户认证和授权(4)
上篇: 最简实例演示asp.net5中用户认证和授权(3) 上面我们把自定义认证和授权的相关的最小基础类和要实现的接口都实现了,下面就是如何来进行认证和授权的配置. 首先我们要告诉系统,我们的用户和角 ...
- 最简实例演示asp.net5中用户认证和授权(3)
上接: 最简实例演示asp.net5中用户认证和授权(2) 在实现了角色的各种管理接口后,下一步就是实现对用户的管理,对用户管理的接口相对多一些,必须要实现的有如下三个: 1 public inter ...
- 最简实例演示asp.net5中用户认证和授权(2)
上接最简实例演示asp.net5中用户认证和授权(1) 基础类建立好后,下一步就要创建对基础类进行操作的类了,也就是实现基础类的增删改查(听起来不太高大上),当然,为了使用asp.net5的认证机制, ...
- 最简实例演示asp.net5中用户认证和授权(1)
asp.net5中,关于用户的认证和授权提供了非常丰富的功能,如果结合ef7的话,可以自动生成相关的数据库表,调用也很方便. 但是,要理解这么一大堆关于认证授权的类,或者想按照自己项目的特定要求对认证 ...
- Winform中用户自定义控件中外部设置子控件属性的方法
假设我们新建立一个用户自定义控件,由一个lable1和pictureBox1组成 此时我们在外部调用该控件,然后想动态改变lable1的值,我们该怎么办? 假设实例化的用户控件名为UserContro ...
- ASP.NET用户自定义控件配置
一直以来开发中碰到要写自定义控件的时候总是习惯性的找度娘,而没有自己记住,结果今天就悲剧了,找了半天才找到,想想还是自己积累起来吧! 第一种配置方式: 配置写在webconfig文件中,位置如下: w ...
- asp.net动态加载ascx用户控件
原文:asp.net动态加载ascx用户控件 在主aspx/ascx文件中,将目标ascx1,ascx2控件拖拉到其页面中,然后删除,目的是要生成:Register 代码,然后在主文件中定义DIV或T ...
- asp.net中如何防止用户重复点击提交按钮
asp.net中如何防止用户重复点击提交按钮 asp.net 中防止因为网速慢等影响交互的问题导致用户可能点击多次提交按钮,从而导致数据库中出现多条重复的记录,经过亲自验证在网上找的方法,找到两个 ...
- ASP.NET中在线用户统计
统计在线用户的作用不言而喻,就是为了网站管理者可以知道当前用户的多少,然后根据用户数量来观察服务器或者程序的性能,从而可以直观的了解到网站的吸引力或者网站程序的效率.现在,我们就介绍一个简单明了的方法 ...
随机推荐
- Eclipse中使用Maven创建Servlet3.0 Web 项目
摘要 Apache Maven是一个优秀的项目构建和管理工具,许多开源项目都使用Maven进行构建.由于最近工作中要用到Maven,于是这里记录下在Eclipse中使用Maven插件创建一个基于Ser ...
- javascript权威指南学习笔记3
今天看到第四章,记录一下其中的几个点,俗话说:好记性不如烂笔头嘛. 4.9 in运算符和instanceof运算符 in运算符希望它的左操作数是一个字符串或可以转化为字符串,希望它的右操作数是一个 ...
- 织梦dede标签tags的美化教程
我们在行dede仿站的时候,经常会遇到tags标签的调用,调用非常简单,官方有专门的调用标签,但是官方的调用是一成不变的模式,dede5.6以前的版本,基本上都是黑色相同大小的表示,而在dede5.7 ...
- inet_aton等函数
地址转换函数 int inet_aton(const char *strptr,struct in_addr *addrptr) 将strptr所指C字符串转换成一个32位的网络字节序二进制值,并同过 ...
- Hibernate的查询语言之HQL(二)——Hibernate查询的from字句
from 是最简单的HQL语句,也是最基本的HQL语句.from 关键字后紧跟持久化类的类名.例如: from Person 表明从Person持久化类中取出全部的实例. 大部分时候,推荐位该Pers ...
- WinDebug 常用命令表【摘】
启动, 附加进程, 执行和退出(Starting, Attaching, Executing and Exiting) ======================= Start -> All ...
- Matrix(线段树版)
poj2155:http://poj.org/problem?id=2155 题意;同上一遍随笔. 题解:这里用二维线段树打了一发.第一次学习别人的代码.才学的.这种树套树的程序,确实很费脑子,一不小 ...
- poj 3592 Instantaneous Transference
http://poj.org/problem?id=3592 #include <cstdio> #include <cstring> #include <algorit ...
- 利用Tree命令生成磁盘文件列表
命令原型:D:/>tree /? 以图形显示驱动器或路径的文件夹结构.TREE [drive:][path] [/F] [/A]/F 显示每个文件夹中文件的名称./A 使用 ASCII 字符,而 ...
- MFC浅析(4) CObject浅析
MFC CObject浅析 1.CObject简要声明 2.CRuntimeClass结构 3.RUNTIME_CLASS 4.DYNAMIC支持 5.DYNCREATE支持 6.SERIAL支持 C ...