从带有幻灯片的ASP标签中获取ID



我在这样的幻灯片中有一个<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)">&#10094;</a>
    <a class="next1" onclick="plusSlides1(1)">&#10095;</a>
</asp:Panel>

我的网页自动生成具有相同ID的跨度,总是像这样

<span id="ctl00_ContentPlaceHolder1_dlResults_ctl02_lblContent"> bla bla </span>
<span id="ctl00_ContentPlaceHolder1_dlResults_ctl01_lblContent"> bla bla </span>

然后,我们看到ID每次ct101ct102 ...幻灯片起作用

我想每次识别当前ID,因为我需要在href

中调用它

是否有可能在JS或其他情况下进行此操作,非常感谢您!

在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 + "");rn";
   }
}

然后,您可以使用它动态创建您的JavaScript,然后将其注入页面,例如

protected void Page_PreRender(object sender, EventArgs e)
{
   if (!(Page.ClientScript.IsStartupScriptRegistered("MyScript")))
      Page.ClientScript.RegisterStartupScript(GetType(), "MyScript", someGlobalString, true);
}

最新更新