首页 新闻 会员 周边

asp.net jQuery操作Repeater中的table获取td的控件值,并传给后台

0
悬赏园豆:20 [已解决问题] 解决于 2014-05-06 21:22
各位大神看一下,Repeater中数据是从数据读取的,我想表格中用鼠标单击行,取到行中td里面lable控件的值,然后传给后台,麻烦各位了

<script type="text/javascript"> $(function () { var table2 = $("#table2"); // var rows = document.getElementsByTagName_r("tr"); var rows = table2.find("tr"); for (var i = 0; i < rows.length; i++) { rows[i].onmouseover = function () { this.className = "hover"; } rows[i].onmouseout = function () { this.className = ""; } var $tr = rows.eq(i); //1.代码到这里走不动了 事件绑定无效 //$tr.bind("click", function () { // var $td = $tr.find("td"); // // alert($td.eq(0).find("#Label1").text()); //}); //2.代码到这里走不动了 事件绑定无效
 $tr.click(function () { var $td = $tr.find("td"); alert($td.eq(0).find("#Label1").text()); }); } }); </script>

 

 <asp:Repeater ID="Repeater1" runat="server">
                    <HeaderTemplate>
                        <table id="table2">
                            <th>检查号</th>
                            <th>登记日期</th>
                            <th>登记时间</th>
                            <th>检查类型</th>
                            <th>检查项目</th>
                    </HeaderTemplate>
                    <ItemTemplate>
                        <tr>

                            <td style="text-align: center">
                                <asp:Label ID="Label1" runat="server" Text='<%#Eval("F_STU_NO") %>'></asp:Label></td>
                            <td>
                                <asp:Label ID="Label2" runat="server" Text='<%#Eval("F_STU_DATE") %>'></asp:Label></td>
                            <td>
                                <asp:Label ID="Label3" runat="server" Text='<%#Eval("F_STU_TIME") %>'></asp:Label></td>
                            <td>
                                <asp:Label ID="Label4" runat="server" Text='<%#Eval("F_MODALITY_NAME") %> '></asp:Label></td>
                            <td>
                                <asp:Label ID="Label5" runat="server" Text='<%#Eval("F_STU_PLACE") %> '></asp:Label></td>
                        </tr>
                    </ItemTemplate>
                    <FooterTemplate></table></FooterTemplate>
                </asp:Repeater>
情义之印的主页 情义之印 | 初学一级 | 园豆:15
提问于:2014-05-06 09:44
< >
分享
最佳答案
0

简单点,给td加个 class ,通过class获取当前td 在去找td内的lable标签

收获园豆:10
秋壶冰月 | 大侠五级 |园豆:5903 | 2014-05-06 12:24

鼠标单击一行,然后把单行数据传到后台就行了 ,这样的话,具体点怎么写,也可以不用js,要是后台能直接得到选中行的值也行,大神,能来点示例代码吗 

情义之印 | 园豆:15 (初学一级) | 2014-05-06 12:29

@情义之印: 

1、第一种方法,比较简单 Repeater在前台循环的时候,在每一行添加一个hidden隐藏域,这个hidden存放这一行tr所有的值,按你的格式连接起来,单击tr的时候,获取hidden的value就可以了,ajax提交到后台就行了

2、点击tr的时候,find lable标签,然后循环当前行所有lable标签的文本,进行拼接起来,ajax提交到后台,

只要有思路,下面的就简单了,自己想想怎么实现较好,才能进步

秋壶冰月 | 园豆:5903 (大侠五级) | 2014-05-06 13:05

@秋壶冰月: 我现在主要就是取不到lable标签里的值,要么什么都没有,要么就null,那个思路我倒是会,可我就是取不到值,取一个就可以了,这是我的代码,能想到的我都试了,大神你看看这是哪的问题  要不你留一下你QQ吧 

$($tr).on("click", function () {
//var a=$tr.find("td").eq(1).html();
alert("fd");

//var a = $("#Repeater1_Label1_0").html();
var a = $tr.find("td").eq(i+1).html();
alert(a);
// alert("a");
//var $td = $tr.find("td");
//alert($td.eq(0).find("#Label1").text());

});

情义之印 | 园豆:15 (初学一级) | 2014-05-06 13:13

@情义之印: 加我qq吧,634552451

秋壶冰月 | 园豆:5903 (大侠五级) | 2014-05-06 13:21
其他回答(3)
0

  <asp:Label ID="Label1" runat="server" Text='<%#Eval("F_STU_NO") %>'></asp:Label> 渠道这一列的值 应该类似id类的东西 获取到id 传到后台 查一下数据库 也可以

收获园豆:5
wolfy | 园豆:2636 (老鸟四级) | 2014-05-06 12:52
0

<td align="right" style="background-color:#CCFFFF;">
<input id="<%# DataBinder.Eval(Container.DataItem,"ID") %>" style="border:0px; width:80%;" name="txtCallDay" onkeyup="CheckCallDay(this)" value="<%# DataBinder.Eval(Container.DataItem, "CallMealDays")%>" />
</td>

js 

function CheckCallDay(obj)
{

var value=obj.value;

}

收获园豆:5
sunlary | 园豆:934 (小虾三级) | 2014-05-06 16:43
0

<table >
<asp:Repeater ID="Repeater1" runat="server">
<HeaderTemplate>
<tr>
<td style="height: 20px; width: 66px;">车次 </td>
<td style="height: 20px; width: 92px;">出发站</td>
<td style="height: 20px; width: 65px;">一等座</td>
<td style="height: 20px; width: 65px;">二等座</td>
<td style="height: 20px; width: 65px;">硬卧</td>
<td style="height: 20px; width: 65px;">软座</td>
<td style="height: 20px; width: 65px;">硬座</td>

</tr>
</HeaderTemplate>

<ItemTemplate>
<tr>
<td><%#Eval("车次")%></td>
<td><%#Eval("站名")%></td>
<td><%#Eval("一等座票价")%></td>
<td><%#Eval("二等座票价")%></td>
<td><%#Eval("硬卧票价")%></td>
<td><%#Eval("软座票价")%></td>
<td><%#Eval("硬座票价")%></td>
<td>
<asp:Button ID="Bookingbtn" runat="server" Text="订票" OnClick="bookingclick" /></td>
</tr>
</ItemTemplate>

</asp:Repeater>
</table>

 我也遇到了类似的问题,如何通过点击"订票"这个按钮,然后获取到这一行的所有值(就是车次、站名、一等座票价等等这些值)

永恒y流星 | 园豆:204 (菜鸟二级) | 2015-04-18 11:24
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册