У меня есть приложение Silverlight с некоторыми картами, и на той же странице это приложение работает, у меня есть таблица, в которой описаны значения, связанные с картой. Я хочу создать способ, при котором при наведении мыши на какой-либо значок на карте будет выделена строка с соответствующим идентификатором. Это вообще возможно? Я использую простые таблицы asp на ASP MVC.
Следуя инструкциям AnthonyWJones, я сделал это:
Silverlight
private void MapClick(object sender, RoutedEventArgs e)
{
for (int i = 0; i < 4; i++)
{
System.Windows.Controls.Primitives.ButtonBase button = (System.Windows.Controls.Primitives.ButtonBase)VisualTreeHelper.GetChild(RegionCanvas, i);
if (button.IsPressed)
HtmlPage.Window.Invoke("highlightRow",(int)button.DataContext);
}
}
ASPX
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<script type="text/javascript">
function highlightRow(id) {
id = "porto" + id;
document.getElementById(id).setAttribute("bgColor", "#123456");
}
</script>
<%try{ %>
<h2><%:(String) Model.FirstOrDefault().estado%></h2>
<%} %>
<%catch (Exception e) { }%>
<table id="tblLayout">
<tr>
<td><div style="height:300px">
<object data="data:application/x-silverlight-2,"
type="application/x-silverlight-2" height="300px" style="width: 400px">
<param name="source" value="/ClientBin/MiniSIG.xap"/>
<param name="onError" value="onSilverlightError" />
<param name="background" value="white" />
<param name="minRuntimeVersion" value="3.0.40818.0" />
<%try{ %>
<param name="initParams" value="startPage=<%:(String) Model.FirstOrDefault().estado%>" />
<%} %>
<%catch (Exception e) { }%>
<%finally{
if(Model.FirstOrDefault() == null){%>
<param name="initParams" value="startPage=main" />
<%} }%>
<param name="autoUpgrade" value="true" />
<a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=3.0.40818.0" style="text-decoration:none">
<img src="http://go.microsoft.com/fwlink/?LinkId=161376" alt="Get Microsoft Silverlight" style="border-style:none"/>
</a>
</object>
</div> </td>
<td><table>
<tr>
<th>
ID do Porto
</th>
<th>
Nome
</th>
<th>
Cidade
</th>
<th>
ID da Cidade
</th>
<th>
Tipo
</th>
</tr>
<% foreach (var item in Model) { %>
<tr id="porto<%: item.idporto %>">
<td>
<%: item.idporto %>
</td>
<td>
<%: Html.ActionLink(item.nome, "../Portos/Details/"+item.idporto)%>
</td>
<td>
<%: item.municipio %>
</td>
<td><%: item.idcidade %></td>
<td>
<%: item.tipo %>
</td>
</tr>
<% } %>
</table></td>
</tr>
</table>
<p>
<%: Html.ActionLink("Voltar", "Index") %>
</p>
</asp:Content>
Можете ли вы сказать мне, если я делаю что-то не так? Я пытался запустить его, но это не сработало.