javascript - 如何在 JavaScript 变量中的中继器控件中获取标签值
问题描述
我想在 JavaScript 变量的转发器控件中获取标签值
<asp:Repeater ID="rep_tskAttachments" runat="server" OnItemDataBound="rep_tskAttachments_ItemDataBound">
<asp:Label ID="rlbl_Remarks" runat="server" Text='<%# Eval("REMARKS") %>'></asp:Label>
</asp:Repeater>
我的代码是
var valComments =document.getElementById('<%=rlbl_Remarks.ClientID%>').innerText;
解决方案
好吧,问题是中继器可能有 1 或 15 个“组”
所以,你可以这样做:
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<asp:Label ID="lblHotel" runat="server"
width="200px"
Text='<%# Eval("HotelName") %>' >
</asp:Label>
<asp:Button ID="Button1" runat="server" Text="Row click (client side)"
OnClientClick='<%# "myrowfun(" + Container.ItemIndex.ToString + ");return false;" %>'
/>
<br />
</ItemTemplate>
</asp:Repeater>
<script>
function myrowfun(ix) {
alert("row click index = " + ix)
lblID = "Repeater1_lblHotel_" + ix
alert(lblID)
// jQuery
alert("Hotel name from repeater = " + $('#' + lblID).text())
// javascript without jQuery
MyLabel = document.getElementById(lblID)
alert("Hotel = " + MyLabel.innerText)
}
</script>
所以,在上面,我们可以像这样填充转发器:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
LoadGrid()
End If
End Sub
Sub LoadGrid()
Using con As New SqlConnection(My.Settings.TEST3)
Using cmdSQL =
New SqlCommand("SELECT TOP 5 ID, FirstName, LastName, HotelName from tblHotels ORDER BY HotelName", con)
con.Open()
Repeater1.DataSource = cmdSQL.ExecuteReader
Repeater1.DataBind()
End Using
End Using
End Sub
然后我们现在有了这个:
当我们点击行点击时,它调用了js,并获取了一个酒店的值。
例如:
因此,即使中继器中只有 1 组,索引也会从 0 开始,并且每个标签的名称为
"repeater name" + "_" + "label name" + "_" + row index
推荐阅读
- excel - 根据另一个单元格值返回一行中的最后一个值
- python - 加快数据帧上的循环
- java - Acceleo - 参考另一个模型
- python - 无法使用 mongo shell 连接到服务
- java - 如何递归地将具有最小 ASCII 值的字符放在字符串的末尾?
- unit-testing - 如何在 Android Studio 中分析测试?
- php - 试图在 C:\xampp\htdocs\tables\index.php 中获取非对象的属性
- python-2.7 - re.search (python) 带有正索引
- symfony - .edi、.seq 和 .xls 的格式
- pycharm - 在 pycharm 中安装 MySQL-Python 时出错