获取repeater控件中选中行的某个字段的值

坚果o 2017-07-19 01:05:04

asp:Content ID="Content2" ContentPlaceHolderID="contentContentPlaceHolder" runat="server">
<table border="0" cellpadding="0" cellspacing="0">
<asp:Repeater ID="Repeater1" runat="server">
<HeaderTemplate>
<tr>
<th colspan="5">
身份证号列表
</th>
</tr>
<tr>
<td>
序号
</td>
<td>
身份证号
</td>
<td>
姓名
</td>
<td>
状态
</td>
<td>
全选<input type="checkbox" name="a" value="" />
</td>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td style="display: none">
<label class="mingxiid"><%#Eval("MingxiId")%></label>
</td>
<td>
<%#this.Repeater1.Items.Count + 1%>
</td>
<td>
<%#Eval("Idcard")%>
</td>
<td>
<%#Eval("Name")%>
</td>
<td>
<%#Eval("State")%>
</td>
<td>
<input type="checkbox" name="b" value="" />
</td>
</tr>
</ItemTemplate>
</asp:Repeater>
</table>
<asp:Button ID="Button1" class="btn" runat="server" Text="确认预约"
onclick="Button1_Click" />
<asp:Button ID="Button2" class="btn" runat="server" Text="取消预约" />
<asp:Button ID="Button3" class="btn" runat="server" Text="返回"
onclick="Button3_Click" />



当我点击《确认预约》或者《取消预约》时怎么获取已勾选的行的label值?
...全文
457 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
CaRrot_Love 2017-07-21
  • 打赏
  • 举报
回复
3,6楼前辈都给了你服务器控件如何后台获取当前行值的例子,稍微改下就可以。 我1楼给的例子你也稍加改动下就可以 比如 我预约按钮点击事件时我现在输出的是已经点击过的id的集合 如果用服务器控件后置类处理可以直接添加个JS赋值给客户端控件

        //js
             function GetID()
        {
            $("#<%= hidIDS.ClientID%>").val(ids);

        }
        <asp:HiddenField runat="server" ID="hidIDS" />
        <asp:Button runat="server" ID="btnDoSoThing" OnClick="btnDoSoThing_Click" OnClientClick="GetID" Text="开始预约" />
     

                string ids =  hidIDS.Value;//1,2,3
                string[] idArray = ids.Split(',');//ID的数组
引用 9 楼 qq_38827248 的回复:
 
<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.Master" AutoEventWireup="true"
    CodeBehind="yuyuemingxi.aspx.cs" Inherits="GalasysWebSite.yuyuemingxi" %>

<asp:Content ID="Content1" ContentPlaceHolderID="headContentPlaceHolder" runat="server">
    <script src="http://localhost:5942/js/jquery-1.8.2.min.js" type="text/javascript"></script>
    <style type="text/css">
        td
        {
            border: 1px solid #3333;
            width: 100px;
        }
        
        table
        {
            text-align: center;
        }
    </style>
    <script type="text/javascript">
        $(function () {
            $('span[name="a"]> input').click(function () {
                var xzzt = $(this).prop("checked");
                $('span[name="b"]> input').prop("checked", xzzt);
            });
        });
    </script>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="contentContentPlaceHolder" runat="server">
    <table border="0" cellpadding="0" cellspacing="0">
        <asp:Repeater ID="Repeater1" runat="server" OnItemCommand="Repeater1_ItemCommand">
            <HeaderTemplate>
                <tr>
                    <th colspan="5">
                        身份证号列表
                    </th>
                </tr>
                <tr>
                    <td>
                        序号
                    </td>
                    <td>
                        身份证号
                    </td>
                    <td>
                        姓名
                    </td>
                    <td>
                        状态
                    </td>
                    <td>
                        <asp:CheckBox ID="CheckBox1" Name="a" Text="全选" runat="server" />
                    </td>
                </tr>
            </HeaderTemplate>
            <ItemTemplate>
                <tr>
                    <td style="display: none">
                        <asp:Label ID="Label1" runat="server" Text='<%#Eval("MingxiId")%>'></asp:Label>
                    </td>
                    <td>
                        <%#this.Repeater1.Items.Count + 1%>
                    </td>
                    <td>
                        <%#Eval("Idcard")%>
                    </td>
                    <td>
                        <%#Eval("Name")%>
                    </td>
                    <td>
                        <%#Eval("State")%>
                    </td>
                    <td>
                        <asp:CheckBox ID="CheckBox2" Name="b" runat="server" />
                    </td>
                </tr>
            </ItemTemplate>
        </asp:Repeater>
    </table>
    <asp:Button ID="Button1" class="btn" runat="server" Text="确认预约" OnClick="Button1_Click1" />
    <asp:Button ID="Button2" class="btn" runat="server" Text="取消预约" OnClick="Button2_Click" />
    <asp:Button ID="Button3" class="btn" runat="server" Text="返回" OnClick="Button3_Click" />
</asp:Content>
怎么获取啊,后台代码应该怎么写,纠结好久了,网上搜的那些有点不符合。我想单选,多选和全选都可以获取 到id然后去修改。
引用 9 楼 qq_38827248 的回复:
 
<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.Master" AutoEventWireup="true"
    CodeBehind="yuyuemingxi.aspx.cs" Inherits="GalasysWebSite.yuyuemingxi" %>

<asp:Content ID="Content1" ContentPlaceHolderID="headContentPlaceHolder" runat="server">
    <script src="http://localhost:5942/js/jquery-1.8.2.min.js" type="text/javascript"></script>
    <style type="text/css">
        td
        {
            border: 1px solid #3333;
            width: 100px;
        }
        
        table
        {
            text-align: center;
        }
    </style>
    <script type="text/javascript">
        $(function () {
            $('span[name="a"]> input').click(function () {
                var xzzt = $(this).prop("checked");
                $('span[name="b"]> input').prop("checked", xzzt);
            });
        });
    </script>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="contentContentPlaceHolder" runat="server">
    <table border="0" cellpadding="0" cellspacing="0">
        <asp:Repeater ID="Repeater1" runat="server" OnItemCommand="Repeater1_ItemCommand">
            <HeaderTemplate>
                <tr>
                    <th colspan="5">
                        身份证号列表
                    </th>
                </tr>
                <tr>
                    <td>
                        序号
                    </td>
                    <td>
                        身份证号
                    </td>
                    <td>
                        姓名
                    </td>
                    <td>
                        状态
                    </td>
                    <td>
                        <asp:CheckBox ID="CheckBox1" Name="a" Text="全选" runat="server" />
                    </td>
                </tr>
            </HeaderTemplate>
            <ItemTemplate>
                <tr>
                    <td style="display: none">
                        <asp:Label ID="Label1" runat="server" Text='<%#Eval("MingxiId")%>'></asp:Label>
                    </td>
                    <td>
                        <%#this.Repeater1.Items.Count + 1%>
                    </td>
                    <td>
                        <%#Eval("Idcard")%>
                    </td>
                    <td>
                        <%#Eval("Name")%>
                    </td>
                    <td>
                        <%#Eval("State")%>
                    </td>
                    <td>
                        <asp:CheckBox ID="CheckBox2" Name="b" runat="server" />
                    </td>
                </tr>
            </ItemTemplate>
        </asp:Repeater>
    </table>
    <asp:Button ID="Button1" class="btn" runat="server" Text="确认预约" OnClick="Button1_Click1" />
    <asp:Button ID="Button2" class="btn" runat="server" Text="取消预约" OnClick="Button2_Click" />
    <asp:Button ID="Button3" class="btn" runat="server" Text="返回" OnClick="Button3_Click" />
</asp:Content>
怎么获取啊,后台代码应该怎么写,纠结好久了,网上搜的那些有点不符合。我想单选,多选和全选都可以获取 到id然后去修改。
坚果o 2017-07-20
  • 打赏
  • 举报
回复
 
<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.Master" AutoEventWireup="true"
CodeBehind="yuyuemingxi.aspx.cs" Inherits="GalasysWebSite.yuyuemingxi" %>

<asp:Content ID="Content1" ContentPlaceHolderID="headContentPlaceHolder" runat="server">
<script src="http://localhost:5942/js/jquery-1.8.2.min.js" type="text/javascript"></script>
<style type="text/css">
td
{
border: 1px solid #3333;
width: 100px;
}

table
{
text-align: center;
}
</style>
<script type="text/javascript">
$(function () {
$('span[name="a"]> input').click(function () {
var xzzt = $(this).prop("checked");
$('span[name="b"]> input').prop("checked", xzzt);
});
});
</script>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="contentContentPlaceHolder" runat="server">
<table border="0" cellpadding="0" cellspacing="0">
<asp:Repeater ID="Repeater1" runat="server" OnItemCommand="Repeater1_ItemCommand">
<HeaderTemplate>
<tr>
<th colspan="5">
身份证号列表
</th>
</tr>
<tr>
<td>
序号
</td>
<td>
身份证号
</td>
<td>
姓名
</td>
<td>
状态
</td>
<td>
<asp:CheckBox ID="CheckBox1" Name="a" Text="全选" runat="server" />
</td>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td style="display: none">
<asp:Label ID="Label1" runat="server" Text='<%#Eval("MingxiId")%>'></asp:Label>
</td>
<td>
<%#this.Repeater1.Items.Count + 1%>
</td>
<td>
<%#Eval("Idcard")%>
</td>
<td>
<%#Eval("Name")%>
</td>
<td>
<%#Eval("State")%>
</td>
<td>
<asp:CheckBox ID="CheckBox2" Name="b" runat="server" />
</td>
</tr>
</ItemTemplate>
</asp:Repeater>
</table>
<asp:Button ID="Button1" class="btn" runat="server" Text="确认预约" OnClick="Button1_Click1" />
<asp:Button ID="Button2" class="btn" runat="server" Text="取消预约" OnClick="Button2_Click" />
<asp:Button ID="Button3" class="btn" runat="server" Text="返回" OnClick="Button3_Click" />
</asp:Content>


怎么获取啊,后台代码应该怎么写,纠结好久了,网上搜的那些有点不符合。我想单选,多选和全选都可以获取
到id然后去修改。
坚果o 2017-07-20
  • 打赏
  • 举报
回复
引用 7 楼 sp1234 的回复:
自从4、5年前许多培训机构炒作 asp.net,asp.net 入门知识表面上看似乎泛滥,其实从书籍到课程,真正讲一点 asp.net 原理知识的几乎不见了,可以说是asp.net 教育是“劣币驱逐了良币”。 不过 asp.net 服务器端控件也有其自身不适应 web 前端流行趋势的本质问题。我们早在多年前就用纯粹的 web 前端程序员来开发页面了,而什么 asp.net、jsp 的服务器端的 web 开发标签都无关。但是培训机构热潮前端、或者热潮手机开发,其实也有同样的问题,除了抬高程序员工资有点作用,对技术没有什么好的作用。 要学好技术还是靠多学点技术专著。。
唉,没办法啊,很少用服务器控件。现在要用居然不会了
  • 打赏
  • 举报
回复
自从4、5年前许多培训机构炒作 asp.net,asp.net 入门知识表面上看似乎泛滥,其实从书籍到课程,真正讲一点 asp.net 原理知识的几乎不见了,可以说是asp.net 教育是“劣币驱逐了良币”。 不过 asp.net 服务器端控件也有其自身不适应 web 前端流行趋势的本质问题。我们早在多年前就用纯粹的 web 前端程序员来开发页面了,而什么 asp.net、jsp 的服务器端的 web 开发标签都无关。但是培训机构热潮前端、或者热潮手机开发,其实也有同样的问题,除了抬高程序员工资有点作用,对技术没有什么好的作用。 要学好技术还是靠多学点技术专著。。
  • 打赏
  • 举报
回复
首先,你要将你说的 Label 使用 asp.net 服务器端控件实现。例如其 ID 为 Label1,那么你就可以这样写
void Button1_Click(object sender, .... e)
{
    var btn = (Button) sender;
    var lbl = (Lable)btn.FindControl("Label1");
    var txt = lbl.Text;
    .......
}
使用 FindControl 从 button 找到与之平行在同一个 namingcontainer 内的其它控件。 进一步地,实际上有些数据你可以直接绑定到 button 自定义属性上面,而不需要求别人(别的控件)。例如
    <asp:Button ID="Button1" class="btn" runat="server" Text="确认预约" MyAbc='<%# Eval("uu") %>'  onclick="Button1_Click" />
那么就可以写
void Button1_Click(object sender, .... e)
{
    var btn = (Button) sender;
    string value = btn.Attributes["MyAbc"];
    .......
}
通过服务器控件的 Attributes 集合你可以得到所绑定的自定义属性的值,这样你就不用去求别的什么控件来保存按钮操作需要知道的关键值了。 学会 asp.net,学会设计理念,从这里你应该看到一点 asp.net 原理知识。而不是只看个别入门书上的简单知识。
坚果o 2017-07-20
  • 打赏
  • 举报
回复
引用 1 楼 CaRrot_Love 的回复:
可以在checkbox点击时记录点击者的标识

//repeater中加载数据时
  <input type="checkbox" name="name" value="" onclick="chkInfo('<%#Eval("MingxiId")%>',this)" />

//button
<input type="button" name="name" value="开始预约" onclick="javascript:alert(ids);" />

//js
  
    <script>
        var ids = [];
        function chkInfo(id,obj)
        {
           
            if ($(obj).is(":checked")) {
                ids.push(id);
            } else {
                removeByValue(ids, id);
            }

        }

        

        function removeByValue(arr, val) {
            for (var i = 0; i < arr.length; i++) {
                if (arr[i] == val) {
                    arr.splice(i, 1);
                    break;
                }
            }
        }
    </script>
后台代码要怎么写?就是如果我点上面的全选,下面的复选框全打勾了,这时我要根据ID去改数据库里的数据
坚果o 2017-07-20
  • 打赏
  • 举报
回复
引用 2 楼 DancingKS 的回复:
有界面么 发来看看
DancingKS 2017-07-19
  • 打赏
  • 举报
回复
有界面么 发来看看
CaRrot_Love 2017-07-19
  • 打赏
  • 举报
回复
可以在checkbox点击时记录点击者的标识

//repeater中加载数据时
  <input type="checkbox" name="name" value="" onclick="chkInfo('<%#Eval("MingxiId")%>',this)" />

//button
<input type="button" name="name" value="开始预约" onclick="javascript:alert(ids);" />

//js
  
    <script>
        var ids = [];
        function chkInfo(id,obj)
        {
           
            if ($(obj).is(":checked")) {
                ids.push(id);
            } else {
                removeByValue(ids, id);
            }

        }

        

        function removeByValue(arr, val) {
            for (var i = 0; i < arr.length; i++) {
                if (arr[i] == val) {
                    arr.splice(i, 1);
                    break;
                }
            }
        }
    </script>

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧