在OnRowDataBound或OnItemDataBound事件中获取字段值

本文介绍了在ASP.NET中如何在GridView、DataList和Repeater控件中获取主键及字段值的方法,包括设置DataKeyNames和DataKeyField属性以及使用HiddenField控件等技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

不管是在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; width: 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>

 

第一种方法:


第二种方法:



第三种方法:


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值