Таблицы на сайте, который я использую, создаются ретрансляторами, поэтому я не знаю, как их идентифицировать после создания страницы. Мне нужно иметь возможность выбирать строку на основе нажатия кнопки из ячейки в этой строке.Есть ли эквивалент функции Javascript .closest() в .net?
Для этого есть функция Javascript, но я хотел бы реплицировать в .net (C#);
currentRow = $(evt).closest("tr");
Таблица генерируется следующим образом; (последний столбец, содержащий кнопку «скрыть»)
<asp:Repeater ID="StoredProcedureRepeater" runat="server">
<ItemTemplate>
<tr ID="HideMe" class="NotHidden" runat="Server">
<td style="width: 300px" runat="server">
<asp:HyperLink runat="server" Text='<%# StoredProcedure.Caption %>' NavigateUrl='<%# Url.StoredProcedure(StoredProcedure) %>' />
</td>
<td runat="server">
<%# StoredProcedure.Description %>
</td>
<td runat="server">
<asp:HyperLink ID="EditProcedure" runat="server" Text='edit' NavigateUrl='<%# Url.EditProcedure(StoredProcedure) %>' />
</td>
<td id="HideBtn">
<asp:button ID="HideUnhide" runat="server" image="../images/collapse.png" onclick="Hide_Unhide"/>
</td>
</tr>
</ItemTemplate>
</asp:Repeater>
За кодом для ретранслятора; (Таким образом, для ясности, этот повторитель создается в то время как в другой.)
private void SchemaRepeater_ItemCreated(object sender, RepeaterItemEventArgs e)
{
Schema = (Schema)e.Item.DataItem;
var storedProcedureRepeater = (Repeater)e.Item.FindControl("StoredProcedureRepeater");
storedProcedureRepeater.ItemCreated += StoredProcedureRepeater_ItemCreated;
storedProcedureRepeater.DataSource = _schemaStoredProcedures[Schema];
storedProcedureRepeater.DataBind();
}
private void PriorityProcedureRepeater_ItemCreated(object sender, RepeaterItemEventArgs e)
{
StoredProcedure = (StoredProcedure)e.Item.DataItem;
}
Я уверен, вы использовать WebForms, показать код, который отображает таблицу –