zoukankan      html  css  js  c++  java
  • 获取GRIDVIEW中的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)来循环获取相应子控件,并进行相应的操作;

  • 相关阅读:
    VGG卷积神经网络模型解析
    利用Azure内容审查器审查违规内容(上)
    Kotlin + 协程 + Retrofit + MVVM优雅的实现网络请求
    OpenCV 实现图片的水平投影与垂直投影,并进行行分割
    C#自定义ip控件
    C#、Java中的一些小知识点总结(持续更新......)
    WinForm程序,实现只启动一个实例
    将DLL文件直接封装进exe执行文件中(C#)
    WinForm下的loading框的实现
    获取串口映射的COM端口号
  • 原文地址:https://www.cnblogs.com/xfoolishpig/p/1874820.html
Copyright © 2011-2022 走看看