获取GRIDVIEW中的TemplateField显示的文本值

简介: GRIDVIEW中数据源绑定后的属性绑定我一般采取2种办法一个是BoundField,只要设置DataField的对应属性名即可;如: 还有一个是TemplateField ,用来处理特殊的显示;如:         ...

GRIDVIEW中数据源绑定后的属性绑定我一般采取2种办法

一个是BoundField,只要设置DataField的对应属性名即可;

如:

 <asp:BoundField HeaderText ="系列" DataField="Catena"  ItemStyle-Width="10%"/>

还有一个是TemplateField ,用来处理特殊的显示;

如:

   <asp:TemplateField HeaderText ="年销量">
                                                           <ItemTemplate>
                                                              <%# GetSalesVolumes(Container.DataItem) %>
                                                           </ItemTemplate>
                                                            <ItemStyle Width="10%"   HorizontalAlign="Center" />       
    </asp:TemplateField>

但是我在RowDataBound的绑定的一些事件中经常获取不到TemplateField中的文本值;

row.Cells[index].Text 的值为"";

后面查了些资料和思考了下,发现TemplateField是个容器,用来自定义显示的,绑定值为其的子容器;

调试监视了下发现

<ItemTemplate>
                                                              <%# GetSalesVolumes(Container.DataItem) %>
</ItemTemplate>
写法中row.Cells[index].Controls.count =1; 我GetType()了下发现,类型为DataBoundLiteralControl;

所以获取值的该列单元格的值方法为:

((DataBoundLiteralControl)row.Cells[index].Controls[0]).Text.Trim();

如果TemplateField包含多个子控件,就获取Cells[index]的Controls (类型为ControlCollection)来循环获取相应子控件,并进行相应的操作;

目录
相关文章
|
7月前
|
C++
[Qt5&控件] Label控件显示文本内容(字符串和整数)
[Qt5&控件] Label控件显示文本内容(字符串和整数)
155 0
[Qt5&控件] Label控件显示文本内容(字符串和整数)
|
开发框架 前端开发 关系型数据库
怎么在GridView中限制显示字数
三种方法可以实现,前两种是C#代码实现(原理一样),第三种是CSS实现。 1.cs代码中:GridView的RowDataBound中对想做处理的项做Remove()字符串截取。 2.aspx页面中:GridView的&lt;ItemTemplate&gt;数据项模板标签对中对其控件内显示文本的相应属性做Eval绑定,同样以SubString为最终截取显示文本。 如: &lt;asp:Templa...
40 0
|
C# 索引
C# 获取listview中选中一行的值
C# 获取listview中选中一行的值
864 0
|
开发框架 JavaScript 前端开发