2014-05-24 2 views
0

안녕 얘들 아 메뉴 항목을 나열하는 리피터가 있습니다. Idle 명령을 사용하여 코드 숨김에서 사용하는 항목 당 ID를 얻습니다. 이제 Ajax를 사용하여 repeater에있는 Item의 ID를 얻으려고합니다.Ajax asp.net에서 CommandArgument를 사용하는 방법

내 리피터;

<asp:Repeater runat="server" ID="repMasterMenu"> 
    <ItemTemplate> 
     <tr> 
      <td><asp:CheckBox ID="CheckBox1" runat="server" /></td> 
      <td> 
       <%#Eval("MenuName") %> 
      </td> 
      <td> 
       <asp:ImageButton ID="Edit" runat="server" ImageUrl="~/admin/img/duzenle_16x16.gif" CommandArgument=<%#Eval("Id") %> onclick="edit" Width="10px" /> 
      </td> 
      <td> 
       <asp:ImageButton ID="Delete" ImageUrl="~/admin/img/sil_16x16.gif" runat="server" CommandArgument=<%#Eval("Id") %> onclick="del" width="10px"/> 
      </td> 
     </tr> 
    </ItemTemplate> 
</asp:Repeater> 

제가 알기로 Commandvument를 사용하여 ImageButton으로 항목의 ID를 가져옵니다. 나는 Ajax를 사용하고 싶지만 어떻게 내가하여 ImageButton 편집과 행의 ID를 가져올 수 말했듯이 : 을 내가 아이디를 얻기 위해이 같은 짓을하지만 난 항상 firts을 얻을 항목 이드에 상관없이 어느 내가 클릭하지

function Edit() { 
    var ClickId = $('[id*="Edit"]') 
     .click(function() { 
      var nId = $(ClickId).data("id"); 
      alert(nId).val(); 
     }) 

답변

0

아래 그림과 같이 html의 데이터 속성에 ID을 바인딩 할 수 있습니다.

data-id=<%# Eval("Id") %>

이 데이터-id 속성

$(".btnEdit").on("click", function(){ 
    var nId = $(this).data("id") 
    alert(nId); 
}) 
을 얻어서 지금

<input type="image" src="~/admin/img/duzenle_16x16.gif" id="Edit" name="Edit" 
data-id="5" class="btnEdit"> 

같은 HTML 해당 클래스 선택과 전화 아약스로하여 ImageButton 및 바인드 클릭 핸들러에 몇 가지 클래스를 지정 렌더링

+0

좋아요.하지만 리피터가 contentplaceholder1_Edit_0처럼 더 많은 콘텐츠를 제공하기 때문에 (# Edit)로 전화를 걸면 Id가 변경됩니다. 또한 이드와 함께 ID와 텍스트를 가져와 텍스트 상자에 반환해야합니다. – Jackal

+0

마스터 페이지를 사용하고 있다는 것을 모르는 사이. 나는 당신에게 당신이 클라이언트 측에서 아이템의 ID를 어떻게 얻을 수 있는지에 대한 아이디어를 줄 뿐이다. –

+0

바인딩 처리기를 바인딩하는 것은 까다 롭습니다. 클래스를 할당하고 클릭 처리기를 바인딩하는 것이 좋습니다. 나는 대답을 업데이트했다. –

관련 문제