`
北极的。鱼
  • 浏览: 159080 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

关于获得Repeater中某行数据项的某列值

ASP 
阅读更多

如何获得Repeater中某行数据项的某列值。高手飘过~~~

 

其实‘Repeater中的每行数据就是一个对象,至于这个对象是什么类型,就要看你后台绑定的数据源了。我们通常是会绑定一张表(DataTable)的,那么这个对象的类型就是DataRowView类型了。

 

前台代码如下:

 

<div class="info details">
    <h4>【站点详细信息】</h4>
    <ul>
        <asp:Repeater ID="rptStationDetailsInfo" runat="server" 
            onitemdatabound="rptStationDetailsInfo_ItemDataBound">
        <ItemTemplate>
        <li class="inner">站点编号:<%# Eval("stationId") %><>
        <li class="inner">站点名称:<%# Eval("stationName")%><>
        <li class="inner">是否启用:<%# Judge(Eval("inUse")) %><>
        <li class="inner">所属分组:<%# Eval("groupName") %><>
        <li class="inner">是否亮灯:<%# Judge(Eval("currentA")) %><>
        <li class="inner">通讯信道名称:<%# Eval("channelName") %><>
        <li class="inner">故障信息:<%# Judge(Eval("inError")) %><>
        <li class="inner">安装时间:<%# Eval("installTime") %><>
        <li class="inner">主板串号:<%# Eval("SerialNo") %><>
        <li class="inner">软件版本:<%# Eval("softVersion") %><>
        <li class="inner">SIM卡号:<%# Eval("SIMID") %><>
        <li class="inner">固定IP:<%# Eval("RemoteIP")%><asp:Label ID="lblIP" runat="server"
            Text="无" Visible = "false"></asp:Label><>
        </ItemTemplate>
        </asp:Repeater>
    </ul>
    </div> 

 

 

我们后台绑定的代码如下:

 

if (!string.IsNullOrEmpty(stationId) && stationId != null)
            {
                StationInfoDAL stationInfo = new StationInfoDAL();
                this.rptStationDetailsInfo.DataSource = new DataTable();
                this.rptStationDetailsInfo.DataBind();
            }
 

 

 

后台获取字段内容的代码如下:

 

 protected void rptStationDetailsInfo_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            if (e.Item.ItemType == ListItemType.AlternatingItem||e.Item.ItemType==ListItemType.Item)
            {
                if (((DataRowView)e.Item.DataItem)["RemoteIP"]==null||((DataRowView)e.Item.DataItem)["RemoteIP"].ToString()=="")
                {
                    Label label = (Label)e.Item.FindControl("lblIP");
                    label.Visible = true;
                }
            }
        }

 

 这里请看我红色标注出来的部分,其实 (DataRowView) 是一个集合,我们要某列的值,只要用索引就可以得到了。

 

还有就是要注意我用下划线画出来的部分,这里很多人会漏写后面的判断,那是不可以的。具体什么原理,自己上网去看下。

 

上面说的情况是关于Repeater中的每个对象都是 (DataRowView) 类型的。

可是还有一些情况是我们后台绑定数据源的时候,不是把一张表作为数据源给Repeater.DataSource的。如下:

 

if (!string.IsNullOrEmpty(stationId) && stationId != null)
            {
                StationInfoDAL stationInfo = new StationInfoDAL();
                this.rptStationDetailsInfo.DataSource = new List<Group>();
                this.rptStationDetailsInfo.DataBind();
            }

 

 这样的情况下,我们的Repeater中的每个对象类型就是我们自己创建的类型Group了。

 那么获取相应的字段代码就如下:

 

 if (e.Item.ItemType == ListItemType.Item||e.Item.ItemType == ListItemType.AlternatingItem)
            {
                if ((bool)((Model.Group)e.Item.DataItem).bitSwitchOn)
                {
                    Label label = (Label)e.Item.FindControl("lblSwitchOnInFact");
                    label.Visible = false;
                }
                if ((bool)((Model.Group)e.Item.DataItem).bitSwitchOff)
                {
                    Label label = (Label)e.Item.FindControl("lblSwitchOffInFact");
                    label.Visible = false;
                }

                Repeater temp = (Repeater)e.Item.FindControl("rptSwitchShiftPoints");
                temp.DataSource = autoRunShiftPts.GetEnabledSwitchPointsInfo(((Model.Group)e.Item.DataItem).autoRunId, ((Model.Group)e.Item.DataItem).groupId);
                temp.DataBind();
            }

 红色标注的地方就是获取相应的字段内容了,不过,与表获取不同的是,这里可以理解会获取对象中的成员。 bitSwitchOn bitSwitchOff 是我创建的Model.Group下的两个属性成员

 

分享到:
评论

相关推荐

    asp.net 遍历repeater中的控件的几种方式

    在*** Web Forms中,Repeater控件是一种数据绑定控件,它能够以模板形式显示数据项。Repeater控件的每个数据项都可以包含多种HTML控件,如文本框、按钮、复选框等。当我们需要在服务器端对这些子控件进行遍历和操作...

    ASP.NET Repeater 单双行数据换色示例

    本文将详细介绍如何通过在Repeater控件中的ItemCreated事件触发来实现单双行数据换色的效果。 首先,我们来看一下如何在***中绑定数据到Repeater控件。Repeater控件提供了多个事件来控制其显示过程,其中...

    .net 中用repeater做漂亮的分页转页,很实用【推荐】

    这部分数据可以从数据库中查询获得,也可以是内存中的列表数据。 ```csharp public class TongGao { public int CsId { get; set; } public string CsLx { get; set; } public string CsContent { get; set; } } ...

    Repeater事件OnItemCommand取得行内控件的方法

    在这个模板中,每个数据项包含了多个控件,例如TextBox和Button。每个控件需要一个唯一标识符,如TextBox控件的ID属性,这样在事件处理函数中才能准确无误地通过FindControl方法找到对应的控件。 其次,在...

    嵌套repeater示例分享

    OnItemDataBound事件会在repeater1中的每一项数据绑定后触发。函数体内的主要逻辑是通过判断触发事件的Item的类型(如ItemTemplate或AlternatingItemTemplate),找到内层的repeater控件repeater2,并将其数据源设置...

    asp.net专家疑难解答200问源码

    126.如何在DataGrid控件中实现数据项的编辑、更新、取消 127.如何在DataGrid控件中删除最后一页的最后一记录 128.如何把数据库中的数据以Excel文件的格式在显示浏览器中 129.如何给DataGrid控件添加个标题并实现...

    老二牛车Axure夜话:中继器系列视频教程之中继器表格添加带图像数据

    中继器(Repeater)是Axure中的一个强大功能,它允许设计者以数据驱动的方式创建可重复的组件,如表格或列表。这个教程可能涵盖了如何利用中继器来创建一个带有图像数据的表格,这意味着我们将学习如何结合文本和...

    asp.net专家疑难解答200问

    如何在DataGrid控件中实现数据项的编辑、更新、取消 127.如何在DataGrid控件中删除最后一页的最后一记录 128.如何把数据库中的数据以Excel文件的格式在显示浏览器中 129.如何给DataGrid控件添加个标题并...

    C#编程经验技巧宝典

    68 &lt;br&gt;0091 如何根据ASCII码获得字母 68 &lt;br&gt;0092 编程中经常使用的ASCII码 68 &lt;br&gt;0093 获得汉字的区位码 69 &lt;br&gt;0094 如何根据区位码获得汉字 69 &lt;br&gt;0095 如何将行字符串转换为列字符串...

    C# 多级动态下拉菜单

    在C#编程中,多级动态下拉菜单是一种常见的用户界面元素,特别是在Web应用程序和Windows Forms应用中。这种菜单允许用户通过逐级展开子菜单来访问深层次的功能或数据。下面我们将详细探讨C#中实现多级动态下拉菜单的...

    DataList中TextBox onfocus调用后台void静态方法及获取相应行数

    此方法的作用是提供当前行中TextBox的初始值,不过在示例代码中,这个方法并未实际使用,只是返回了一个说明性的字符串,实际应用中可以根据需求填充具体的值,例如从数据库中获取对应行的数据。 为了实现...

    基于jquery的分页控件(C#)

    在实际的Web应用开发中,开发者还需要关注分页控件在不同浏览器中的兼容性问题,确保无论用户使用何种浏览器,都能获得一致的用户体验。 此外,分页控件的样式也应该与整个网站或应用的风格保持一致,使用CSS对链接...

    2021-2022计算机二级等级考试试题及答案No.414.docx

    - **Windows98**中的资源管理器提供了多种功能,包括帮助菜单项,用户可以通过点击该菜单项获得系统提供的帮助信息(正确答案:正确)。 ### 11. 字符串处理 - **Mid(S,3,2)**是从字符串S的第3个字符开始截取长度为...

    ASP.NET2.0实验指导书

    实验七讨论了数据绑定技术,如DataGrid、Repeater等,这些控件可以动态地展示数据库中的数据。 实验八介绍了自定义用户控件,这允许开发者创建自己的可重用组件,增强了网站的灵活性和扩展性。 实验九展示了在线...

    asp.net 智能搜索

    这可能包括使用全文索引、前缀匹配、模糊查询(如LIKE操作符)等技术,确保即使在大量数据中也能迅速找到匹配项。 5. **C#编程**:ASP.NET的后端开发通常使用C#语言。在实现智能搜索时,你需要编写C#代码来处理...

    HDCP 2.1 spec

    此外,还强调了该文档中所涉及的加密功能可能受到美国、日本及其他国家政府的出口管制,并且明确指出实施此规范需获得Digital Content Protection LLC的授权许可。 #### 范围与定义 本规范主要涵盖了HDCP 2.1协议...

    [翻译]Scott Mitchell 的ASP.NET 2.0数据教程

    通过Scott Mitchell的*** 2.0数据系列教程,开发者可以获得关于如何构建强大、灵活、面向数据的Web应用程序的深入知识。教程覆盖了从基础的数据访问到复杂的数据处理技术的全部范畴,为开发者提供了系统学习和实践的...

    断代、新生、创未来-Zoomla!逐浪CMS2 x3.9.6全面发布

    打铁还要自身硬,只有建立起强大的生态、提供丰富的基石,才能让客户获得丰厚的收益。 今天,我们发布逐浪CMS基于MVC架构最强的版本--Zoomla!逐浪CMS2 x3.9.6,依托微软平台,不断深化产品研发, 未来,我们将...

Global site tag (gtag.js) - Google Analytics