GridView类容器中的DropDownList联动
实例说明:
部门,与部门人员2个下拉框。
(1)前台码
<EditItemTemplate>
部门:
<asp:DropDownList ID="ddlstdepartment" runat="server" OnTextChanged="ddlstdepart_TextChanged" AutoPostBack="True"></asp:DropDownList>
人员:
<asp:dropdownlist ID="ddlstperson" runat="server" AutoPostBack="True" OnTextChanged="ddlstperson_TextChanged"></asp:dropdownlist>
<!--这个literal用于指定编辑模式下默认值选定-->
<asp:Literal ID="luserid" runat="server" Text='<%# Eval("userid") %>' Visible="false"></asp:Literal>
</EditItemTemplate>
(2)后台码
在DataRowBound事件中进行数据绑定
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if ((DropDownList)e.Row.FindControl("ddlstdepartment") != null)
{
Literal luserid = e.Row.FindControl("luserid") as Literal; //userid
DropDownList ddlstdepartment = e.Row.FindControl("ddlstdepartment") as DropDownList;
BindDepList(ddlstdepartment);//绑定部门
ddlstdepartment.SelectedValue = myPerson.DepartmentId.ToString();//指定默认选定
DropDownList ddlstperson = e.Row.FindControl("ddlstperson") as DropDownList;
BindDepPersonList(ddlstperson, myPerson.DepartmentId);//绑定人员
ddlstperson.SelectedValue = myPerson.UserId;//指定默认选定
}
}
指定部门下拉框为autopostback为true。并注册事件ddlstdepart_TextChanged
事件内容如下:
protected void ddlstdepart_TextChanged(object sender, EventArgs e)
{
DropDownList ddlstdepartment = (DropDownList)sender;
GridViewRow gvr = (GridViewRow)ddlstdepartment.NamingContainer;
DropDownList ddlstperson = (DropDownList)gvr.FindControl("ddlstperson");
DataSet ds = new DataSet();
ds = pp.ShowPersonDs(1, 100, BaseData.enums.eQuestDataType.data, Convert.ToInt32(ddlstdepartment.SelectedItem.Value));
ddlstperson.DataValueField = "userid";
ddlstperson.DataTextField = "username";
ddlstperson.DataSource = ds.Tables[0].DefaultView;
ddlstperson.DataBind();
lhidingids.Text = ddlstperson.SelectedItem.Value;//=================(一个页面隐藏Literal,当然也可以用页面状态:ViewState)
}
这个事件很重要,通过NamingContainer来找到同处于GridView中的两个下拉框(部门,人员),使其产生二级联动(选择部门,人员下拉框自动变化)。
其中注释==============这个部门,很重要。因为编辑模式下需要。
人员下拉框事件ddlstperson_TextChanged
protected void ddlstperson_TextChanged(object sender, EventArgs e)
{
DropDownList ddlstperson = (DropDownList)sender;
lhidingids.Text = ddlstperson.SelectedItem.Value;//================很重要
}
(3)编辑模式
bound事件中指定的默认值,在编辑模式下,二级下拉框会出现不能选值的情况。意思是:部门下拉框选项变化,人员下拉框联动,但更新时,不能选定人员下拉框的值,而是默认值,所以不能更新,原因是:在编辑事件中,Bound事件依然执行,所以总是那个默认值。因此需要一个用于存放选定值的状态(ViewState,或带有状态的控件,这里我用Literal)
这样在编辑模式下,更新时,用lhidingids.Text即可。
转载于:https://www.cnblogs.com/jams742003/archive/2009/05/19/1459970.html
GridView类容器中的DropDownList联动相关推荐
- 【ASP.NET】第八课——GridView 控件的编辑功能优化,GridView控件中嵌套DropDownList控件
知识点:掌握 GridView 的编辑.高亮显示的功能 .GridView控件中嵌套DropDownList控件获取数据源. [ASP.NET]第七课--数据绑定和 GridView 控件的使用 重点 ...
- GridView中DropDownList联动
1.在GridView模板列中添加DropDownList并设置AutoPostback属性为true. 2.再在DropDownList的SelectedIndexChanged事件里写下面几句话. ...
- FastJson序列化Json自定义返回字段,普通类从spring容器中获取bean
前言: 数据库的字段比如:price:1 ,返回需要price:1元. 这时两种途径修改: ① 比如sql中修改或者是在实体类转json前遍历修改. ②返回json,序列化时候修改.用到的是fastj ...
- SpringBoot 之 普通类获取Spring容器中的bean
SpringBoot 之 普通类获取Spring容器中的bean 转载于:https://www.cnblogs.com/lwmp/p/8892927.html
- Spring Boot中普通类获取Spring容器中的Bean
我们知道如果我们要在一个类使用spring提供的bean对象,我们需要把这个类注入到spring容器中,交给spring容器进行管理,但是在实际当中,我们往往会碰到在一个普通的Java类中,自己动手n ...
- SpringBoot中在普通类里面加载Spring容器中的类
前言 在我们的工作中,经常会遇到需要在普通类中使用放在Spring容器中的类的情况.最常见的情况大概就是有一个类他的属性的是通过spring的配置文件读取的.这样这个类必然要交给Spring容器进行管 ...
- 【SpringBoot】在普通类中获取spring容器中的bean
这段时间公司搞封闭开发,做一个联通总部的客服系统项目,是基于springboot的.在开发工程中遇到一个页面datagrid数据排序的功能,因为有多个表的数据都要用到排序功能,于是我就写了一个排序功能 ...
- 工具类:获取 spring 容器中 bean
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. package com.orange.utils;import org.springframewor ...
- spring@Autowired的对象为null,非容器中的类如何调用容器中的类
1.问题描述 我们平时使用@Autowired注入对象时,一般被注入的类都带有@Coponent.@Controller.@Service .@repository等注解才可以.注入类和被注入类都被s ...
最新文章
- 用python计算2+4+6+…+20的值_计算2*3+(2*(5+6)*3)/2+4*6的值
- [九度][何海涛] 栈的压入压出
- java xssf的背景色,poi xssf背景颜色对照表 java生成excel文件
- 两个class写在同一个java文件中
- 题解P3942_将军令
- 删除以x为根节点的子树并释放☆
- python判断序列符号变化的次数
- SQL那些事儿(十三)--Oracle中varchar与varchar2区别
- 【图像重建】基于matlab GUI投影法图像重建【含Matlab源码 861期】
- 基于模拟退火算法解决TSP问题 | MATLAB源码
- Qt上位机 实现串口助手和网络助手
- Linux系列教程——Linux文件编辑、Linux用户管理
- JAVA实现杨辉三角的三种方式
- 快速获取网站媒体资源方法
- python批量图片合并
- 从零开始Kubernetes CronJob实现任务调度
- 区块链51%双花攻击
- 长隆大马戏机器人_长隆娱乐登陆
- selenium+cookie自动登录新浪微博(二)
- 《黄金瞳》 台词:你人真好!
热门文章
- Java中矩阵运算(math3的使用)
- ERROR manager.SqlManager: Error reading from database: java.sql.SQLException: Streaming result set
- Photoshop CS6将多张图片合成GIF动态图或视频,并将其保存导出
- Ubuntu系统全盘备份与恢复,亲自总结,实测可靠
- Autodesk Revit DB Link 中文理解
- python获取系统参数_python 常用系统参数
- mysql 主从备份 全量数据_当主库存在历史数据时如何完成全量Mysql主从复制
- 服务器如何启动运行,如何在服务器系统启动或重新启动时执行命令或脚本
- html表格添加选项代码,使用实例演示 表单 中的选项卡功能 在里面添加table id=bootstrap-table/table后不显示表格...
- fastreport 横向分栏_FastReport开发指南