惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园_首页
N
Netflix TechBlog - Medium
V
Visual Studio Blog
博客园 - Franky
小众软件
小众软件
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Apple Machine Learning Research
Apple Machine Learning Research
博客园 - 三生石上(FineUI控件)
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
宝玉的分享
宝玉的分享
量子位
大猫的无限游戏
大猫的无限游戏
人人都是产品经理
人人都是产品经理
V
V2EX
The Cloudflare Blog
月光博客
月光博客
Last Week in AI
Last Week in AI
雷峰网
雷峰网
WordPress大学
WordPress大学
博客园 - 【当耐特】
博客园 - 聂微东
IT之家
IT之家
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻

博客园 - BlackAngel2bAssassin

使用SQL SERVER 内部函数进行密码加密和校验小问题 还原MOSS 默认的权限级别 破译moss 2007 中的权限提升功能 后台代码中使用Post 进行跳转 在自定义HttpHandler 中使用Session asp.net 1.1 用户控件的第二种重用 一个DataGrid 的CheckBoxColumn FireBird 点滴之JDBC连接字串 (转贴)实现带有数据绑定的客户端脚本控制的二级联动菜单 (转贴)使用Repeater实现自定义多列数据绑定 - BlackAngel2bAssassin - 博客园 (转贴)使用PagedDataSource给Repeater、DataList增加分页 (转贴)给Repeater、Datalist和Datagrid增加自动编号列 重新理解.net remoting SPS 中修改用户密码的WebPart 工程 FireBird 的使用点滴(一) 使用Webpart包装ActiveX组件 制作用户修改密码Webpart 的简短步骤 一个忘却了的SharePoint 的Bug 抽取word、excel、pdf等文件[转载]
(转贴)如何取得DataGrid绑定列和模板列中的值
BlackAngel2bAssassin · 2005-08-22 · via 博客园 - BlackAngel2bAssassin

 1<asp:DataGrid id="DataGrid1" runat="server" AutoGenerateColumns="False" AllowPaging="True"> 
 2                <Columns> 
 3                    <asp:BoundColumn DataField="vName" HeaderText="姓名0"></asp:BoundColumn> 
 4                    <asp:TemplateColumn HeaderText="姓名1"> 
 5                        <ItemTemplate> 
 6                            姓名 
 7                        </ItemTemplate> 
 8                    </asp:TemplateColumn> 
 9                    <asp:TemplateColumn HeaderText="姓名2"> 
10                        <ItemTemplate> 
11                            <%#DataBinder.Eval(Container.DataItem,"vName")%> 
12                        </ItemTemplate> 
13                    </asp:TemplateColumn> 
14                    <asp:TemplateColumn HeaderText="姓名3"> 
15                        <ItemTemplate> 
16                            <asp:Label ID="name" Runat="server" Text='<%#DataBinder.Eval(Container.DataItem,"vName")%>'> 
17                            </asp:Label> 
18                        </ItemTemplate> 
19                    </asp:TemplateColumn> 
20                    <asp:ButtonColumn Text="删除" ButtonType="PushButton" CommandName="del"></asp:ButtonColumn> 
21                </Columns> 
22            </asp:DataGrid> 

列出了4种大家可能遇到的列:
(1)绑定列
(2)模板列中直接放静态的字符串
(3)模板列中直接放绑定的字符串
(4)模板列中通过Label放绑定的字符串

下面说明在按下了删除按钮以后的四种取值的方式:

1if(e.CommandName=="del"
2
3   Response.Write(DataGrid1.Columns[0].HeaderText+":"+e.Item.Cells[0].Text+"<br>"); 
4   Response.Write(DataGrid1.Columns[1].HeaderText+":"+e.Item.Cells[1].Text.Trim()+"<br>"); 
5   Response.Write(DataGrid1.Columns[2].HeaderText+":"+((DataBoundLiteralControl)e.Item.Cells[2].Controls[0]).Text.Trim()+"<br>"); 
6   Response.Write(DataGrid1.Columns[3].HeaderText+":"+((Label)e.Item.Cells[3].FindControl("name")).Text+"<br>");                 
7}
 

(1)第一种用绑定列的方式可以直接通过Cells[i].Text取
(2)第二种方式也直接可以取,但是讨厌的vs.net总是会在前台把列中的内容换行,所以这里还需要对输出的东西进行去除首尾的空格
(3)第三种方式不能直接通过Cells[i].Text取到值,可以通过上面给出的方法来取,同样需要去除首尾的空格
(4)第四种方式也是最简单的方式,当然你可以直接写e.Item.FindControl("name")