zoukankan      html  css  js  c++  java
  • 在OnRowDataBound或OnItemDataBound事件中获取字段值

    不管是在GridView,DataList还是Repeater控件中,其中Repeater控件,没有DataKeyNames或是DataKeyField属性,想获取记录的主键值,只好用Label或是HiddenField绑定主键字段,然后在后台OnItemDataBound获取。
    虽然GridView和DataList控件有DataKeyNames和DataKeyField属性,或是某时候程序需求,一些非主键字段需要进一步函数处理而需要获取这些字段。

    现Insus.NET教大家几种方法,在OnRowDataBound或是OnItemDataBound事件获取主键值或是字段值。如果是GridView控件或是DataList控件,需要设置属性DataKeyNames和DataKeyField,而Repeater控件,只能使用HiddenField控件了。


    先来看看GridView控件

    <asp:GridView ID="GridView1" runat="server" DataKeyNames="ID" OnRowDataBound="GridView1_RowDataBound">
                    <Columns>
                        <asp:TemplateField>
                            <ItemTemplate>
                                <asp:Label ID="LabelName" runat="server" Text='<%# Eval("Name") %>'></asp:Label>
                            </ItemTemplate>
                        </asp:TemplateField>
                    </Columns>
                </asp:GridView>


    去.aspx.cs网页,写GridView1_RowDataBound事件。


    当然想在OnRowDataBound获取主键时,不用设置DataKeyNames属性,也可以跟获取其它字段一样获取得到,下面是第二种方法:



    第三种方法:

    下面是DataList控件演示,

    <asp:DataList ID="DataList1" runat="server" DataKeyField="ID" OnItemDataBound="DataList1_ItemDataBound">
                    <ItemTemplate>
                         <asp:Label ID="LabelName" runat="server" Text='<%# Eval("Name") %>'></asp:Label>
                    </ItemTemplate>               
                </asp:DataList>


    第一种:


    第二种方法:



    第三种方法:



    下面是Repeater控件在OnItemDataBound事件中,获取字段值。

     <asp:Repeater ID="Repeater1" runat="server" OnItemDataBound="Repeater1_ItemDataBound">
                    <HeaderTemplate>
                        <table cellpadding="3" cellspacing="0" style="border: 1px solid #808080; border-collapse: collapse;  500px;">
                            <tr>
                                <td style="border: 1px solid #808080;">主键
                                </td>  
                                   <td style="border: 1px solid #808080;">Name
                                </td>                        
                            </tr>
                    </HeaderTemplate>
                    <ItemTemplate>
                        <tr>
                            <td style="border: 1px solid #808080;">                                          
                                <%# Eval("ID") %>
                                <asp:HiddenField ID="HiddenField1" runat="server" Value='<%# Eval("ID") %>' />
                            </td>  
                                 <td style="border: 1px solid #808080;">                                          
                                <asp:Label ID="LabelName" runat="server" Text='<%# Eval("Name") %>'></asp:Label>
                            </td>                  
                        </tr>
                    </ItemTemplate>
                    <FooterTemplate>
                        </table>
                    </FooterTemplate>
                </asp:Repeater>

    第一种方法:


    第二种方法:



    第三种方法:


     

  • 相关阅读:
    word设置的密码忘了怎么办?
    Navicat Report Viewer 设置 HTTP 的方法
    如何处理Navicat Report Viewer 报表
    excel密码忘记了怎么办
    Beyond Compare文本比较搜索功能详解
    Popular Cows POJ
    Problem B. Harvest of Apples HDU
    网络流模型整理
    The Shortest Statement CodeForces
    Vasya and Multisets CodeForces
  • 原文地址:https://www.cnblogs.com/insus/p/3201720.html
Copyright © 2011-2022 走看看