将参数传递给OnClick事件

时间:2012-04-27 05:39:41

标签: c# javascript asp.net

我有一个带有表格的aspx页面。表中的每一行代表一行数据库表(代表一个地方)。

我需要一种方法来传递给OnClick事件(或另一个事件)一个参数。 我不能使用CommandArgument因为我需要知道idPlace字符串,我只是不知道它。 我用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>

我想要的是当用户点击特定行(地点)时,我将使用SPECIFIC placeId转到OnClick事件IN C#代码,然后我将连接到数据库,获取该地点的坐标,以及Respondr.Rediret到另一个aspx页面 - 显示地图上的位置。我只需要placeId ......

1 个答案:

答案 0 :(得分: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