我有一个带有表格的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 ......
答案 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