【问题标题】:how to access repeater label value in javascript如何在javascript中访问转发器标签值
【发布时间】:2012-04-16 11:30:24
【问题描述】:

这是我的javascript

  function btnEditClick() {
    alert(document.getElementById('<%=LblRefPhyID.ClientID %>').value);          
  }


<asp:Repeater ID="repeaterRefPhysicianList" runat="server">
  <ItemTemplate>
    <tr onclick="selectRow(this);">
      <td class="csstablelisttd" style="display: none;">
        <asp:Label ID="LblRefPhyID" runat="server" Text='<%#Eval("Ref_Phy_ID")%>'></asp:Label>  
      </td>

在编辑按钮的 clientclick 上,我必须将 RefphyId 传递到另一个页面我该怎么做..

【问题讨论】:

标签: c# javascript asp.net


【解决方案1】:

这是一个中继器。这意味着 ItemTemplate 将为您的数据绑定集合中的每个项目重复

这有一个警告:ID 应该是唯一的。因此,当您说您的 asp:Label 的 ID 为 LblRefPhyID 时,ASP.NET 会自动为您生成唯一 ID 为转发器的每个实例最终进入您生成的 HTML 的方式。这些生成的 ID 将基于您的原始值 LblRefPhyID,但不会完全一样,因此中继器的普通 document.getElementById() outside 将不起作用。

有很多方法可以解决这个问题,您需要做的第一步是实际编写一些将自动生成的 ID 考虑在内的代码。也许编写一些 Javascript 来使用 LblRefPhyID.ClientID 缓存 ID,也许动态地执行 onclick,等等。

编辑

而且,哦,是的,@Pointy 完全正确地指出label 元素没有值,只有它们的内部 HTML。我不明白他为什么因为给出正确的回答而被否决。

【讨论】:

    【解决方案2】:

    尝试设置 css 类而不是 id 并通过类名绑定元素单击事件。 我为此使用 jquery:

    $(document).ready(function(){
      //bind click event on our label class
      $('.lblRef').live('click', function(){
        alert($(this).text());
       });
    });
    

    这在 asp.net 页面代码中:

    <asp:Label CssClass="lblRef" runat="server" Text='<%#Eval("Ref_Phy_ID")%>'></asp:Label>
    

    【讨论】:

      【解决方案3】:

      HTML &lt;label&gt; 元素没有“值”。他们确实有内容:

      alert(document.getElementById('<%=LblRefPhyID.ClientID %>').innerHTML);
      

      【讨论】:

      • 它不起作用。无法直接在中继器中找到控件。有其他解决方案吗?
      • 看,&lt;label&gt; 元素只是没有值。他们只是没有。您可以获取“值”以外的内容或属性,或者您可以向标记添加非标准属性(根据您发布的内容,您没有这样做)。
      【解决方案4】:

      最好的方法是检查客户端的转发器生成的 id 模式是什么,然后您可以使用该 id 来使用 innerHTML 获取标签的值。 例如,在您的情况下,生成的 id 可能是: repeaterRefPhysicianList_LblRefPhyID_01 直到源中的行数。

      因此您可以使用此信息与 innerHTML 来获取标签的值.. 总而言之,只需检查您的 html 页面,您就会知道下一步该做什么:)

      【讨论】:

      猜你喜欢
      • 2011-04-13
      • 1970-01-01
      • 2017-09-04
      • 2011-10-24
      • 2017-02-18
      • 2019-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多