C# jQuery找不到Asp.net repeater项目
我在我的webforms页面上有一个转发器,有一个绑定到它的列表。在绑定列表时,我还向tr附加了一个数据id属性。问题是我需要在来自jQuery的web服务调用中使用该id,我正在测试当我从repeater项单击按钮时,是否可以通过记录数据id属性值来获取id,但从外观来看,它只记录项目,不记录交替项目 每次单击按钮1、3和5时,都会记录日志,但当我单击按钮2和按钮4时,控制台中不会记录任何内容。请参阅下面的代码 转发器模板C# jQuery找不到Asp.net repeater项目,c#,jquery,asp.net,repeater,custom-data-attribute,C#,Jquery,Asp.net,Repeater,Custom Data Attribute,我在我的webforms页面上有一个转发器,有一个绑定到它的列表。在绑定列表时,我还向tr附加了一个数据id属性。问题是我需要在来自jQuery的web服务调用中使用该id,我正在测试当我从repeater项单击按钮时,是否可以通过记录数据id属性值来获取id,但从外观来看,它只记录项目,不记录交替项目 每次单击按钮1、3和5时,都会记录日志,但当我单击按钮2和按钮4时,控制台中不会记录任何内容。请参阅下面的代码 转发器模板 <asp:Repeater runat="server"
<asp:Repeater runat="server" ID="rptList" OnItemDataBound="rptList_OnItemDataBound">
<HeaderTemplate>
<table>
</HeaderTemplate>
<ItemTemplate>
<tr runat="server" id="trList">
<td runat="server" id="tdList"></td>
<td runat="server" id="tdBtnRemove">
<asp:Button runat="server" ID="btnRemove" CssClass="btnRemove" Text="Remove" OnClientClick="return false;"/></td>
</tr>
</ItemTemplate>
<AlternatingItemTemplate>
<tr runat="server" id="trList">
<td runat="server" id="tdList"></td>
<td runat="server" id="tdBtnRemove">
<asp:Button runat="server" ID="btnRemove" Text="Remove" OnClientClick="return false;"/></td>
</tr>
</AlternatingItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
控制台结果:
如评论中所述,您的
AlternatingItemTemplate
遗漏了CssClass=“btnRemove”
属性
因此,您的
$(“.btnRemove”)。单击(…
绑定不会以AlternatingItemTemplate中的按钮为目标您的AlternatingItemTemplate按钮将错过cssclassbtnRemove@jbl哦,哇,我犯了一个多大的错误啊哈哈…谢谢你…把它作为一个答案,这样我就可以标记它了
List<string> listObj = new List<string>(){"one", "two", "three", "four", "five"};
protected void rptList_OnItemDataBound(object sender, RepeaterItemEventArgs e)
{
string listItem = (string) e.Item.DataItem;
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
HtmlTableRow trList = (HtmlTableRow)e.Item.FindControl("trList");
trList.Attributes.Add("data-id", listItem);
HtmlTableCell tdList = (HtmlTableCell)e.Item.FindControl("tdList");
tdList.InnerHtml = listItem;
}
}
$(".btnRemove").click(function () {
var dataAttributVal = $(this).closest("tr");
var datA = dataAttributVal.data('id');
console.log(datA);
});