各位大神看一下,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>
简单点,给td加个 class ,通过class获取当前td 在去找td内的lable标签
鼠标单击一行,然后把单行数据传到后台就行了 ,这样的话,具体点怎么写,也可以不用js,要是后台能直接得到选中行的值也行,大神,能来点示例代码吗
@情义之印:
1、第一种方法,比较简单 Repeater在前台循环的时候,在每一行添加一个hidden隐藏域,这个hidden存放这一行tr所有的值,按你的格式连接起来,单击tr的时候,获取hidden的value就可以了,ajax提交到后台就行了
2、点击tr的时候,find lable标签,然后循环当前行所有lable标签的文本,进行拼接起来,ajax提交到后台,
只要有思路,下面的就简单了,自己想想怎么实现较好,才能进步
@秋壶冰月: 我现在主要就是取不到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());
});
@情义之印: 加我qq吧,634552451
<asp:Label ID="Label1" runat="server" Text='<%#Eval("F_STU_NO") %>'></asp:Label> 渠道这一列的值 应该类似id类的东西 获取到id 传到后台 查一下数据库 也可以
<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;
}
<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>
我也遇到了类似的问题,如何通过点击"订票"这个按钮,然后获取到这一行的所有值(就是车次、站名、一等座票价等等这些值)