我在这样的幻灯片中有一个<label ID="lblContent">
:
<asp:Panel ID="pnlResult" runat="server" Visible="false" class="slideshow-container1" style="height:300px;margin-left: 0px;">
<asp:DataList ID="dlResults" runat="server" OnItemDataBound="dlResults_ItemDataBound">
<ItemTemplate>
<div class="mySlides1>
<a href="AnotherPage.aspx">
<asp:Label ID="lblContent" runat="server" Text="" ></asp:Label>
</a>
</div>
</ItemTemplate>
</asp:DataList>
<a class="prev1" onclick="plusSlides1(-1)">❮</a>
<a class="next1" onclick="plusSlides1(1)">❯</a>
</asp:Panel>
我的网页会自动生成具有相同id的跨度,总是像这样
<span id="ctl00_ContentPlaceHolder1_dlResults_ctl02_lblContent"> bla bla </span>
<span id="ctl00_ContentPlaceHolder1_dlResults_ctl01_lblContent"> bla bla </span>
然后,我们看到幻灯片播放时,每次ct101
,ct102
...时ID都会增加
我想每次都标识当前ID,因为我需要在href
中调用它
是否可以用JS
或其他方式执行此操作,非常感谢!
答案 0 :(得分:0)
在ItemDataBound事件中,您可以获取创建的每个标签的ClientId,例如
protected void dlResults_ItemDataBound(object sender, DataListItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
Label contentLabel = (Label)e.Item.FindControl("lblContent");
someGlobalString += "var contentLabel = document.getElementByID(\"" + contentLabel.ClientId + "\");\r\n";
}
}
然后您可以使用它动态创建Javascript,然后将其注入到页面中,例如
protected void Page_PreRender(object sender, EventArgs e)
{
if (!(Page.ClientScript.IsStartupScriptRegistered("MyScript")))
Page.ClientScript.RegisterStartupScript(GetType(), "MyScript", someGlobalString, true);
}