-1

这是我的 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传递到另一个页面我该怎么做..

4

4 回答 4

1

尝试设置 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>
于 2012-04-17T14:13:55.543 回答
1

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

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

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

编辑

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

于 2012-04-16T12:23:29.183 回答
0

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

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

于 2012-04-16T12:35:35.557 回答
0

HTML<label>元素没有“值”。他们确实有内容:

alert(document.getElementById('<%=LblRefPhyID.ClientID %>').innerHTML);
于 2012-04-16T11:41:42.920 回答