当前位置: 首页 > 编程日记 > 正文

ASP.NET DEMO 14: 如何在 GridView/DataGrid 模板列中使用自动回发的 CheckBox/DropDownList

有时候希望在 GridView 模板中使用自动回发的 CheckBox (autopostback=true) ,但是 CheckBox 没有 CommandName 属性,因此也就无法在 GridView.RowCommand  事件中处理,并且如何获取当前 GridView 行信息呢?

我们可以选择像处理页面上普通 CheckBox 的 CheckedChanged 事件的“最原始”的方式。

要点:
1. 注意到 .net 中控件事件委托统一原型 (object sender,  EventArgs e)
第一个参数 sender,表示触发此事件控件

2. ASP.NET  服务器控件基类 Control 中定义了属性 NamingContainer ,表示对服务器控件的命名容器的引用,此引用创建唯一的命名空间。在模板列中的控件就是表示包含此控件的模板列。
注:也可以使用 BindingContainer 属性获取,但 MSDN 不建议使用此属性,
         此属性主要用于控件开发以及 ASP.NET 引擎内部使用 

        
下面以 DataGrid/GridView 模板列中使用 CheckBox/DropDownList 为例:

 .aspx
None.gif<asp:TemplateField>
None.gif                    
<ItemTemplate>                        
None.gif                    
<asp:CheckBox ID="chkItem" runat="server" OnCheckedChanged="chkItem_CheckedChanged" AutoPostBack="true" />
None.gif                    
<asp:DropDownList ID="drpItem" runat="server" OnSelectedIndexChanged="drpItem_SelectedIndexChanged" AutoPostBack="true">
None.gif                        
<asp:ListItem></asp:ListItem>
None.gif                        
<asp:ListItem Value="red">red</asp:ListItem>
None.gif                        
<asp:ListItem Value="green">green</asp:ListItem>
None.gif                        
<asp:ListItem Value="orange">orange</asp:ListItem>
None.gif                    
</asp:DropDownList>
None.gif                    
</ItemTemplate>
None.gif                
</asp:TemplateField>

 .aspx.cs
None.gifprotected void chkItem_CheckedChanged(object sender, EventArgs e)
ExpandedBlockStart.gifContractedBlock.gif    
dot.gif{
InBlock.gif        CheckBox chk 
= sender as CheckBox; // 触发事件的 CheckBox        
InBlock.gif
        GridViewRow row = chk.NamingContainer as GridViewRow; // GridView 当前行    
InBlock.gif        
// 也可以使用 BindingContainer 属性获取,但 MSDN 不建议使用此属性,
InBlock.gif        
// 此属性主要用于控件开发以及 ASP.NET 引擎内部使用 
InBlock.gif        
// GridViewRow row = chk.BindingContainer as GridViewRow;
InBlock.gif
        row.BackColor = chk.Checked ? System.Drawing.Color.BlueViolet : System.Drawing.Color.White;        
InBlock.gif        Response.Write(String.Format(
"选中第 {0} 行", row.RowIndex + 1));
InBlock.gif        
// more codes
InBlock.gif        
// Label lbl = row.FindControl("MyLabelID") as Label;
InBlock.gif        
// string str = row.Cells[0].Text;
InBlock.gif        
// dot.gif
ExpandedBlockEnd.gif
    }

None.gif
None.gif    
protected void drpItem_SelectedIndexChanged(object sender, EventArgs e)
ExpandedBlockStart.gifContractedBlock.gif    
dot.gif{
InBlock.gif        DropDownList  drp 
= sender as DropDownList; // 触发事件的 DropDownList
InBlock.gif
        GridViewRow row = drp.NamingContainer as GridViewRow; // GridView 当前行        
InBlock.gif
        row.Style.Add(HtmlTextWriterStyle.BackgroundColor, drp.SelectedValue);
InBlock.gif        Response.Write(String.Format(
"选中第 {0} 行", row.RowIndex + 1));
InBlock.gif        
// more codes
InBlock.gif        
// Label lbl = row.FindControl("MyLabelID") as Label;
InBlock.gif        
// string str = row.Cells[0].Text;
InBlock.gif        
// dot.gif
ExpandedBlockEnd.gif
    }

None.gifprotected void chkItem2_CheckedChanged(object sender, EventArgs e)
ExpandedBlockStart.gifContractedBlock.gif    
dot.gif{
InBlock.gif        CheckBox chk 
= sender as CheckBox; // 触发事件的 CheckBox        
InBlock.gif
        DataGridItem row = chk.NamingContainer as DataGridItem;        
InBlock.gif        row.BackColor 
= chk.Checked ? System.Drawing.Color.BlueViolet : System.Drawing.Color.White;        
InBlock.gif        Response.Write(String.Format(
"选中第 {0} 行", row.ItemIndex + 1));
InBlock.gif        
// more codes
InBlock.gif        
// Label lbl = row.FindControl("MyLabelID") as Label;
InBlock.gif        
// string str = row.Cells[0].Text;
InBlock.gif        
// dot.gif
ExpandedBlockEnd.gif
    }

None.gif
None.gif    
protected void drpItem2_SelectedIndexChanged(object sender, EventArgs e)
ExpandedBlockStart.gifContractedBlock.gif    
dot.gif{
InBlock.gif        DropDownList drp 
= sender as DropDownList; // 触发事件的 DropDownList
InBlock.gif
        DataGridItem row = drp.NamingContainer as DataGridItem; 
InBlock.gif        row.Style.Add(HtmlTextWriterStyle.BackgroundColor, drp.SelectedValue);
InBlock.gif        Response.Write(String.Format(
"选中第 {0} 行", row.ItemIndex + 1));
InBlock.gif        
// more codes
InBlock.gif        
// Label lbl = row.FindControl("MyLabelID") as Label;
InBlock.gif        
// string str = row.Cells[0].Text;
InBlock.gif        
// dot.gif
ExpandedBlockEnd.gif
    }



说明
1。事实上,对于 Button LinkButton ImageButton 当然也可以采取此中方式,只是我们习惯了 ItemCommand 事件中处理
2。对于 DataList/Repeater  只要转换外对应的模板项类型,DataListItem/RepeaterItem

下载

转载于:https://www.cnblogs.com/Jinglecat/archive/2007/07/29/835817.html

相关文章:

BI.寒号鸟请吃烧烤/意外入手“speed- dear friends vol.1”/入手“鲍家街43号”/我爱红红/我爱红红...

先说&#xff0c;昨天下午&#xff0c;在逛完西北政法的乐图后&#xff0c;辗转到了高新区&#xff0c;见到了在经典论坛认识的热情的热心的热烈的寒号鸟兄弟&#xff0c;而notus本人则感动的热泪盈眶&#xff0c;想不到在遥远的西安&#xff0c;都有人惦记着我 T_T附上我们的合…

数据结构----单链表增删改查

单链表的增删改查 一、链表&#xff08;Linked List&#xff09; 链表是有序列表&#xff0c;以节点的方式来存储的&#xff0c;链式存储&#xff1b;每个节点包含data域&#xff0c;next域&#xff1a;指向下一节点&#xff1b;链表的各个节点不一定是连续存储&#xff1b;链…

Using NUnit with Visual Studio 2005 Express Editions

允许通过Build Toolbar选择"Debug" or "Relese"设置"工具" -> "选项..." -> 选择"显示所有设置" -> "项目和解决方案" ->选择"显示高级生成配置" 在VS2k5 Express工程中使用NUnit-GUI测试&…

代理上网环境下配置TortoiseCVS

以NASA Wind World为例&#xff0c;SF上的提示如下&#xff1a; http://sourceforge.net/cvs/?group_id69528 Anonymous CVS Access This projects SourceForge.net CVS repository can be checked out through anonymous (pserver) CVS with the following instruction set.…

ucos-iii串口用信号量及环形队列中断发送,用内建消息队列中断接收

串口发送部分代码&#xff1a; //通过信号量的方法发送数据 void usart1SendData(CPU_INT08U ch) {OS_ERR err;CPU_INT08U isTheFirstCh;OSSemPend(&Usart1Sem, 0, OS_OPT_PEND_BLOCKING, NULL, &err);//阻塞型等待串口发送资源OSSemPend(&Usart1TxBufSem, 0, OS_O…

几款自用的IDEA高效插件

idea几款自用的高效小插件1、CodeGlance2、Translation3、Rainbow Brackets4、Statistic5、Markdown Navigator6、MarkDown Navigator1、CodeGlance CodeGlance是一款非常好用的代码地图插件&#xff0c;可以在代码编辑区的右侧生成一个竖向可拖动的代码缩略区&#xff0c;可以…

CSS中position属性( absolute | relative | static | fixed )详解

我们先来看看CSS3 Api中对position属性的相关定义&#xff1a; static&#xff1a;无特殊定位&#xff0c;对象遵循正常文档流。top&#xff0c;right&#xff0c;bottom&#xff0c;left等属性不会被应用。 relative&#xff1a;对象遵循正常文档流&#xff0c;但将依据top&am…

ASP.NET 2.0 ajax中gridView的刷新问题!

我是一个经常使用ASP.NET2.0的开发人员,最近看了ajax课程,也想使用一下Ajax这个强大的技术,我就使用了,在一个UpdatePanel中放入了一个gridView,果然能达我的满意效果,设置了gridView中的分页,相应的代码我都已经写好了.唯一的问题是当我点击了第二页的时候,我再点击刷新,当前页…

心灵小栈: 镌刻在地下500米的母爱

这位母亲叫赵平饺&#xff0c;今年48岁。谁能想到&#xff0c;在不见天日的煤井深处&#xff0c;她已经弓着脊梁爬行了13 年。1993年&#xff0c;赵平姣的丈夫陈达初在井下作业时被矿车压断了右手的三根手指。此后他只能在井上干轻活&#xff0c;收入少了一大截。为了供女儿陈娟…

js学习总结----crm客户管理系统之项目开发流程和api接口文档

CRM ->客户管理系统 CMS ->内容发布管理系统 ERP ->企业战略信息管理系统 OA -> 企业办公管理系统 产品 / UI设计&#xff1a;需求分析&#xff0c;产品定位&#xff0c;市场调查...按照产品的规划设计出对应的效果图(PSD->photoshop) 前端开发工程师 API接口文…

数据结构--数组队列的实现

数据结构--数组模拟队列1. 说明2. 实现代码1. 数组队列类2.数组队列测试类3.代码运行结果3.完整代码1. 说明 队列是一个有序列表&#xff0c;可以用数组或者链表来实现。 遵循先入先出&#xff08;FIFO&#xff09;的原则&#xff0c;即先存入列的数据&#xff0c;会被先取出&…

DIV+CSS一行两列布局

实现效果&#xff1a; main 我是包在外面的div col1 我是第一列col2 我是第二列clear-float;我用来清除浮动&#xff08;清除float&#xff09;以下是说明&#xff1a;CSS代码&#xff1a;.main{width:800px;/* 总的宽度 */ background:red; } .main .col1{ float:left;/* 这个…

编程上标和下标使用方法

1.问题&#xff1a;写代码要求显示平方、立方、化学符号等等完全写不出来&#xff0c;Word写出来复制出来也不管用 2.办法&#xff1a;Unicode下标和上标 3.举例&#xff1a;string.Format("{0} km\xB2"&#xff0c;1000&#xff09;&#xff0c;单位是平方千米&…

上周新闻回顾:微软补丁个个紧急 奥运网络百花齐放

也许是美国不是黄金周的原因&#xff0c;五一刚过&#xff0c;直接来自国外的新产品发布等IT新闻就源源不断涌来&#xff0c;倒是国内的新闻发布不是非常多。不过&#xff0c;微软的5月安全补丁如期发布&#xff0c;还是值得大家关注的。此外&#xff0c;关于2008年奥运会网络建…

rest-framework之解析器

rest-framework之解析器 本文目录 一 解析器的作用二 全局使用解析器三 局部使用解析器四 源码分析回到目录一 解析器的作用 根据请求头 content-type 选择对应的解析器对请求体内容进行处理。 有application/json&#xff0c;x-www-form-urlencoded&#xff0c;form-data等格式…

httpd常用配置

author&#xff1a;JevonWei版权声明&#xff1a;原创作品 检查配置文件时&#xff0c;如下提示&#xff0c;则因为没有server的服务名称导致&#xff0c;故设置网站的服务server名称&#xff0c;若没有设置web服务名&#xff0c;主默认解析系统主机名(添加主机名解析) [rootda…

[导入]C#中实现Socket端口复用

一、什么是端口复用&#xff1a;   因为在winsock的实现中&#xff0c;对于服务器的绑定是可以多重绑定的&#xff0c;在确定多重绑定使用谁的时候&#xff0c;根据一条原则是谁的指定最明确则将包递交给谁&#xff0c;而且没有权限之分。这种多重绑定便称之为端口复用。 二、…

数据结构学习系列文章合集

数据结构学习系列文章目录前言1.稀疏数组和队列稀疏数组和二位数组的转换数组队列的实现环形队列的介绍与实现2.链表单链表的增、删、改、查总结前言 学习数据结构记录&#xff0c;作为自己的笔记&#xff0c;同时也可以方便大家一起交流和学习 1.稀疏数组和队列 稀疏数组和二…

支付宝Payto接口的c#.net实现

它现在这种支付方式比较多象网银在线等使用的方法都是url验证&#xff0c;就是通过url参数和一个这些url参数的md5编码来确认这个连接的正确性&#xff0c;支付宝在你购买成功后跳转自定义连接的时候会传2次过来&#xff0c;第一次是数据底层请求&#xff0c;第二次是web请求&a…

【Visual Studio 扩展工具】如何在ComponentOneFlexGrid树中显示RadioButton

概述 在ComponentOne Enterprise .NET控件集中&#xff0c;FlexGrid表格控件是用户使用频率最高的控件之一。它是一个功能强大的数据管理工具&#xff0c;轻盈且灵动&#xff0c;以分层的形式展示数据&#xff08;数据呈现更加直观&#xff09;。 FlexGrid 简介 FlexGrid 是业界…

如何 SQL Server 2005 实例之间传输登录和密码

INTRODUCTION 本文介绍如何不同服务器上的 Microsoft SQL Server 2005 实例之间传输登录和密码。 本文, 服务器 A 和服务器 B 是不同的服务器。 此外, 服务器 A 和 B 服务器都运行 SQL Server 2005。 将数据库从服务器 A 上的 SQLServer 实例移到 B, 服务器上的 SQLServer 实例…

IDEA配置GitHub报错GitHub Invalid authentication data.404 Not Found-Not Found

登录账户GitHub Invalid authentication data.404 Not Found-Not Found报错及解决办法1 登录自己的github账号--》头像---》settting2 Developer settings3 Personal access tokens4 回到IDEA中&#xff0c;粘贴上自己的token就可以了想要把自己的代码上传到GitHub中&#xff0…

console.log 简写

console.log 简写 平常代码调试总会用到console.log&#xff0c;但是每次写这么长也是很麻烦&#xff0c;就想着存一个简介一点的变量&#xff1b; 然后就随手写了下面代码&#xff1b; var a 10;var log console.log;log(a);调用的时候发现火狐浏览器报错了&#xff0c;仔细…

为何我的BLOG不能DIY?

今天想把MODULE调整一下&#xff0c;居然搞不定。估计是服务器又出问题了........不知道51CTO有没有备份我们的博克呀&#xff1f;

Java中的自动装箱和拆箱

自动装箱和拆箱自动装箱和拆箱自动装箱&#xff1a;拆箱1. 为什么要有包装类(或封装类&#xff09;2. 基本数据类型与对应的包装类&#xff1a;3. 类型间的转换4. 何时发生自动装箱和拆箱赋值、数值运算时方法调用时&#xff1a;自动装箱、拆箱中的坑自动装箱和拆箱 目的&…

【Java】身份证号码验证

代码引用自&#xff1a;https://gitee.com/appleat/codes/ynrtqujv0wfgesm8ia9b547 1 package xxx;2 3 /**4 * Created by wdj on 2017/6/21.5 */6 7 import java.text.ParseException;8 import java.text.SimpleDateFormat;9 import java.util.Calendar;10 import java.util…

linux history记录格式修改

#保存一万条命令记录 sed -i s/^HISTSIZE1000/HISTSIZE10000/g /etc/profile#在/etc/profile的文件尾部添加如下行数配置信息 ######jiagu history xianshi######### USER_IPwho -u am i 2>/dev/null | awk {print $NF} | sed -e s/[()]//g if [ "$USER_IP" &quo…

从EAI到SOA

写在前面SOA现在越发闹腾的厉害了&#xff0c;各种宣传越来越多&#xff0c;都把SOA吹上天&#xff1b;到底SOA是什么&#xff0c;有啥神奇之处&#xff0c;真的想宣传说的那么好吗&#xff1f;看了种种文章&#xff0c;只是越发混沌。罢了&#xff0c;俺做技术的&#xff0c;商…

用C#实现FTP搜索引擎

晚辈最近用C#写了一个教育网FTP搜索引擎&#xff0c;希望能得到高手的指点。 网址&#xff1a;http://soso.ccnu.com.cn http://it.ccnu.edu.cn/soso 部分代码&#xff1a; using System;using softplib;using System.Threading;using System.Collections;using System.Ne…

IDEA配置GitHub和Gitee

IDEA配置GitHub和GiteeIDEA配置GitHub和GiteeGit准备IDEA内配置Git配置GitHub1. IDEA的Settings-->Version Control ---> GitHub2. 登录账户GitHub Invalid authentication data.404 Not Found-Not Found报错及解决办法2.1 登录自己的github账号--》头像---》settting2.2…