다음 코드가 있습니다.
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">
<script src="Js/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$("#propertyimage").mouseover(function () {
$("#lnkedit").hide();
});
$("#propertyimage").mouseout(function () {
$("#lnkedit").show();
});
});
</script>
<div class="ddldemo">
<asp:Repeater ID="rptproperty" runat="server">
<ItemTemplate>
<div style="width: 165px;">
<asp:Image ID="propertyimage" runat="server" ImageUrl='<%#Eval("image1") %>'" />
<asp:LinkButton runat="server" ID="lnkedit" Text="Edit"></asp:LinkButton>
</div>
</ItemTemplate>
</asp:Repeater>
</div>
</asp:Content>
마우스를 이미지 버튼 위로 가져 가면 모든 코드가 콘텐츠 자리 표시 자에 있습니다.
어떻게 해결할 수 있습니까?
ItemTemplate에 컨트롤이 있으면 그렇게 할 수 없습니다. 컨트롤의 고유 한 클라이언트 ID는 #propertyimage가 아닙니다. 동일한 버튼 이름을 가진 여러 사용자 컨트롤을 가질 수 있기 때문입니다. ASP.Net은 컨트롤 트리와 관련된 고유 ID를 생성합니다. 이 경우 repeater 제어에 있고 동일한 클라이언트 ID로 여러 제어를 가질 수 없기 때문에 clientid를 얻는 것이 작동하지 않습니다.
그래도 수업으로 이것을 할 수 있습니다. 다음은 jsFiddle에 대한 예제 입니다. 클래스를 사용하여 repeater를 식별 한 다음 jquery next () 메서드를 사용하여 다음 앵커 요소를 선택하고 표시 / 숨 깁니다. 다음과 같이 코드를 변경해보십시오.
<script src="Js/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$(".propertyImage").mouseover(function () {
$(this).next("a").hide();
});
$(".propertyImage").mouseout(function () {
$(this).next("a").show();
});
});
</script>
<div class="ddldemo">
<asp:Repeater ID="rptproperty" runat="server">
<ItemTemplate>
<div style="width: 165px;">
<asp:Image ID="propertyimage" class="propertyImage" runat="server" ImageUrl='<%#Eval("image1") %>'" />
<asp:LinkButton runat="server" ID="lnkedit" Text="Edit"></asp:LinkButton>
</div>
</ItemTemplate>
</asp:Repeater>
</div>
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다