ASP.Net 응용 프로그램에서 내부에 Gridview가있는 업데이트 패널이있는 aspx 파일이 있습니다. Gridview 내부에는 또한 일부 패널이 포함 된 테이블이 있습니다. 이 패널 안에는 몇 가지 컨트롤이 있습니다.동적 ASP를 찾을 수 없습니다 : JQuery를 사용하여 Gridview 내부 제어
ASPX
<asp:Gridview ID="GridView1" runat = "server"...>
<Columns>
<asp:TemplateField ShowHeader="False">
<ItemTemplate>
<table>
<asp:Panel ID="pnlVisualAst" runat="server" Visible="false">
<tr>
<td style="text-indent: 50px; width: 25%">
<asp:Label ID="lblVisAst" runat="server" Text="Visual Assitance"></asp:Label>
</td>
<td colspan="3">
<asp:Button ID="btnVisAst" class="button" runat="server" Text="View"/>
<asp:Image ID="popImg" ImageUrl='<%# GetImage(Eval("VA_Img"))%>' runat="server" Visible="false" />
</td>
</tr>
</asp:Panel>
</table>
</ItemTemplate>
</asp:TemplateField >
</Columns>
</asp:Gridview>
지금, 나는이 GRIDVIEW 내부 버튼의 클릭 이벤트를 캡처하고 팝업 창에서 이미지 필드를 표시 할 JQuery와 함수를 쓰고 있어요.
JQuery와
<script type="text/javascript">
$(document).on('ready', function()
{
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_endRequest(function()
{
$('#<%=GridView1.ClientID%>').find($('#<%= btnVisAst.ClientID %>')).click(function()
{
$('#<%=popImg.ClientID%>').dialog
({
title: "my jquery popup",
width: 430,
height: 200,
modal: true,
button:
{
Close:
function()
{
$(this).dialog('Close');
}
}
});
$(this).prop('checked', true);
});
});
});
상기 코드 문제는 그 내부 GRIDVIEW 동적 제어를 찾을 수있다. 'btnVisAst'및 'popImg'가 현재 컨텍스트에 존재하지 않음을 보여줍니다.
이 문제를 해결할 수있는 방법이 있습니까? 감사합니다. .
항상의 GridView 항목에서 컨트롤 ID와 함께 작동하도록 복잡하다. 각 항목에는 하나의'btnVisAst'가 있고 각 ID는 HTML 출력에서 고유해야하므로 ASP.NET은 각 접두사를 다른 것으로 만들기 위해 일부 접두사를 추가합니다. 이 문제를 해결하려면 ItemTemplate에있는 컨트롤의 'CssClass'를 설정하고 ID 대신 jQuery 선택기에서 해당 클래스 이름을 사용할 수 있습니다. – ConnorsFan
나는 이미 그것을 시도했다. ID 대신 CSS 클래스를 사용하면 모든 버튼에 대한 이벤트가 동시에 생성됩니다. 나는 왜 나는이 접근법을 취하고있는 이드가 그렇게되기를 원하지 않는다. –
그리고 ID를 사용하여 jQuery 선택기로 어떤 항목을 타겟팅 했습니까? – ConnorsFan