2012-04-27 15 views
0

テーブルがあるaspxページがあります。テーブルの各行は、(場所を表す)データベーステーブルの行を表します。OnClickイベントにパラメータを渡します。

OnClickイベント(または別のイベント)にパラメータを渡す方法が必要です。 私はidPlace文字列を知る必要があり、私はそれを知らないのでCommandArgumentを使うことはできません。 FORループを使用してテーブルをバルド化しました。

は、私のようなものが必要:

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

主なアイデアテーブルの各場所(行)のためplaceIdになるだろう別のページをMAP-との座標を取得するためのリンクがあるだろうということデータベース内の別のテーブルのgoogleMap

私はそれに数時間働いていて、それはイライラしています。私がしたいことは、ユーザがspesific行(場所)をクリックしたときに私はC#コードでOnClickイベントに行くということです

<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> 

:ここ

おかげで、 ヒラ

は、コードからいくつかの部分であります特定の場所 - そこにデータベースに接続し、場所の座標を取得し、Respondr.Rediretを別のaspxページに渡します - 地図上の場所を表示します。私はちょうどその場所が必要です...

+0

を見ていますか? –

+0

元のメッセージにコメントを追加しました(コメント用のテキストがたくさんあります)。 – user1165147

+0

なぜリピーターを使ってテーブルを作成しないのですか?あなたのケースでは、ImageButtonはクリックされたときに一意に識別されず、commandARgumentsはグリッド、データリストなどのデータバインドされたコントロールで使用されます。 –

答えて

1

あなたはコマンドプロンプトを取得するためにリピータの項目コマンドイベントを使用します。詳細について

<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); 

    } 
} 

はあなたには、いくつかのより多くのコードを示すとされますが、実際のonclickや他のイベントにしたいオブジェクトをすることができます

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

関連する問題