【问题标题】:How to pass client id of Item in repeater to javascript如何将中继器中项目的客户端ID传递给javascript
【发布时间】:2014-05-22 17:46:14
【问题描述】:

我需要将 div 客户端 ID 传递给中继器的 JavaScript

我在中继器中有 3 个 div 我有 onmouseover 事件我想获取 div 元素的客户端 ID 有什么方法可以传递 div 元素的确切客户端

你们能帮帮我吗谢谢

【问题讨论】:

标签: asp.net


【解决方案1】:

如果您想在标记中执行此操作,可以使用 如下获取ClientId:

<%# Container.FindControl("_RepeaterEL").ClientID %>

【讨论】:

    【解决方案2】:

    类似这样的东西(如果我理解正确的话):

    标记:

    <asp:Repeater id="myRepeater" OnItemDataBound="myRepeater_ItemDataBound" runat="server">
        <ItemTemplate>
            <div id="myDiv" runat="server">......</div>
        </ItemTemplate>
    </asp:Repeater>
    

    代码隐藏:

    protected void myRepeater_ItemDataBound(object sender, RepeaterItemEventArgs e)
    {
        if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
        {
            HtmlGenericControl myDiv = e.Item.FindControl("myDiv") as HtmlGenericControl;
            // you can just pass "this" instead of "myDiv.ClientID" and get the ID from the DOM element
            myDiv.Attributes.Add("onmouseover", "doStuff('" + myDiv.ClientID + "');");
        }
    }
    

    【讨论】:

      【解决方案3】:
      <asp:Panel CssClass="modal hide fade" ID="myModal" runat="server">
                                  <div class="modal-header">
                                      <a class="close" data-dismiss="modal">×</a>
                                      <h3>Add to cart</h3>
                                  </div>
                                  <div class="modal-body">
                                      <nav>
                                          <iframe seamless src="/ToCart/<%# DataBinder.Eval(Container.DataItem, "code")%>"
                                              style="border-style: none;"> </iframe>
                                      </nav>
                                  </div>
      </asp:Panel>
      
      <a data-toggle="modal" href="#<%#Container.FindControl("myModal").ClientID%>">
          <div class="add-to-cart-one">+</div>
      </a>
      

      【讨论】:

        【解决方案4】:

        如果转发器渲染到浏览器,您可以通过以下方式获取转发器元素:

        var rep = $get("<%= rpt.ClientID %>");
        

        否则,包装一个

        <DIV id="RepeaterEL"></div> 
        

        围绕转发器,并通过纯 JavaScript(和 childNodes 集合)或使用类似 JQuery 的方式访问其子节点

        $("#RepeaterEL").children("DIV").each(function(i) {    
           var id = $(this).attr("id"); //<- pointer to DIV });
        

        【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-09-14
        • 2014-10-24
        • 1970-01-01
        • 2015-06-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多