2012-04-27 5 views
0

테이블이있는 aspx 페이지가 있습니다. 테이블의 각 행은 데이터베이스 테이블의 행 (장소를 나타냄)을 나타냅니다.OnClick 이벤트에 매개 변수 전달

OnClick 이벤트 (또는 다른 이벤트)에 매개 변수를 전달하는 방법이 필요합니다. idPlace 문자열을 알아야하기 때문에 CommandArgument를 사용할 수 없으며 단지 알 수 없습니다. FOR 루프를 사용하여 테이블을 구체화했습니다.

내가 좋아하는 뭔가가 필요 :

<asp:ImageButton ID="ImageButton1" 
        runat="server" 
        ImageUrl="Maps.ico" 
        **CommandArgument = '<%=placesDataTable[0]%>'**   
        /> 

주요 아이디어 테이블의 각 위치 (행)의 placeId을 얻을 것입니다 다른 페이지를 맵 -과의 좌표를 얻을 수있는 링크가있을 것이라고 데이터베이스의 다른 테이블에서 googleMap.

저는 두 시간 동안 작업하고 있으며 실망합니다.

<body dir="rtl"> 

    <form id="form1" runat="server" style="background-color:Fuchsia"> 

     <!-- Here I will display all the results:--> 

     <p style="font-style:italic">Here are the results:</p> 

     <table width="100%" border="1" cellpadding="0" cellspacing="0"> 
    <% 
     System.Data.DataTable placesDataTable = (System.Data.DataTable)Session["PlacesDataTable"]; // The table of all the places from the dataBase. 
     System.Data.DataRow rowOfPlace; 
     for (int i = 0; i < placesDataTable.Rows.Count; i++) 
     {    
     <tr> 
     <% 
      for (int j = 1; j < placesDataTable.Columns.Count; j++) 
      {%> 
       <td> 
       <% Response.Write(rowOfPlace[j].ToString()); %> 
       </td> 
      <% 
      } // end FOR LOOP over the columns 
      // insert MAP column content: 
      %> 
       <td> 
        <asp:ImageButton ID="ImageButton1" 
        runat="server" 
        ImageUrl="Maps.ico" 
        CommandArgument = '<%placesDataTable[i]%>'   
        /> 
       </td> 
     </tr> 
     <% 
     } 
     %> 
    </table> 

    </form> 
</body> 

내가 원하는 것은 사용자가 spesific 행 (장소)를 클릭 할 때 내가 함께 C# 코드 IN OnClick 이벤트에 갈 것입니다 :

감사합니다, Hila 여기

코드의 일부입니다 특정 장소 - 그리고 거기서 나는 데이터베이스에 연결하고, 장소의 좌표를 얻고, Respondr.Rediret를 다른 aspx 페이지로 가져옵니다 -지도상의 장소를 표시합니다. 그냥 그 자리가 필요해.

+0

를 보라? –

+0

원래 메시지에 주석을 추가했습니다 (주석을위한 많은 텍스트). – user1165147

+0

왜 테이블을 만드는 데 리피터를 사용하지 않습니까? 귀하의 경우 ImageButton은 클릭 할 때 고유하게 식별되지 않으며, grid, datalist 등과 같은 데이터 바인딩 된 컨트롤과 함께 commandARguments가 사용됩니다. –

답변

1

당신은 cam을 사용하여 명령을 받는다. 자세한 내용에 대한

<asp:ImageButton ID="ImageButton1" 
        runat="server" 
        ImageUrl="Maps.ico" 
        CommandName="MapIt" 
        CommandArgument = '<%#Eval("ID")%>'   
        /> 



protected void rptComments_ItemCommand(object source, RepeaterCommandEventArgs e) { 
    if(e.CommandName.ToLower().Equals("mapit")) { 
     var id = int.Parse(((ImageButton)e.CommandSource).CommandArgument); 

    } 
} 

는 좀 더 코드를 같이하고있는 당신이 실제로 온 클릭하거나 다른 이벤트에서 원하는 개체 수

http://dotnetrush.blogspot.com/2006/12/using-repeater-itemcommand.html

+0

리피터 사용을 확인하십시오. http://www.sitepoint.com/asp-net-repeater-control/ –

+0

문제는 내가 ASP 컨트롤 ID가 필요 없다는 것입니다. 장소의 ID가 필요합니다 (sataBase의 PlacesTable에 placeId라는 기본 키가 있음). 이 매개 변수를 전달하려면 어떻게해야합니까? – user1165147

+0

이벤트에 매개 변수 (placeId)를 전달하는 간단한 방법은 없습니까? – user1165147