2012-04-27 178 views
0

我有一個帶有表格的aspx頁面。表中的每一行代表一行數據庫表(代表一個地方)。將參數傳遞給OnClick事件

我需要一種方法傳遞給OnClick事件(或另一個事件)的一個參數。 我不能使用CommandArgument becouse,那麼我將需要知道idPlace字符串,我只是不知道它。 我buld與FOR循環的表。

我需要這樣的東西:

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

主要的想法,每個地方(行)在表中會有到MAP-不同的網頁,其中會得到placeId和獲得的座標鏈接來自數據庫中另一個表的googleMap。

我正在工作幾個小時,這很令人沮喪。

感謝, HILA

下面是從代碼中的一些部分:

<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行(地方)我會去OnClick事件在C#代碼SPECIFIC placeId-在那裏,我將連接到數據庫,獲取該地點的座標,並將Respondr.Rediret連接到另一個aspx頁面,該頁面顯示地圖上的位置。我只需要placeId ...

+0

可以顯示更多的代碼和對象你真的想在的onclick或任何其他事件? – 2012-04-27 06:00:59

+0

我在原始郵件中添加了它(這是很多評論文字)。 – user1165147 2012-04-27 06:12:38

+0

你爲什麼不使用中繼器創建表?在你的情況下,ImageButton不是唯一標識,當單擊和commandARguments與數據綁定控件,如網格,datalist等使用。 – 2012-04-27 06:18:19

回答

1

您可以使用Repeater itemcommand事件獲取命令參數。

<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/ – 2012-04-27 06:23:26

+0

問題是我不需要asp控件ID。我需要該地點的ID(sataBase中的PlacesTable有一個名爲placeId的主鍵)。我怎樣才能傳遞這個參數? – user1165147 2012-04-27 06:28:58

+0

是不是隻有一個簡單的方法來傳遞參數(placeId)到一個事件?! – user1165147 2012-04-27 06:42:48

相關問題