我有一个Gridview,其中包含此超链接的模板:
<asp:TemplateField HeaderText="Notes" ItemStyle-CssClass="NoMargin NoPadding" SortExpression="lineNotes">
<ItemTemplate>
<asp:HyperLink id="notesHl" runat="server" text='<%# Bind("lineNotes") %>' Font-Underline="true" Font-Bold="true"></asp:HyperLink>
</ItemTemplate>
<ItemStyle Font-Size="Smaller" Height="10px" Width="10px" Wrap="True" />
</asp:TemplateField>
然后jQuery创建一个由Popup();
调用的模态对话框 $(document).ready(function () {
// increase the default animation speed to exaggerate the effect
$.fx.speeds._default = 1000;
$(function () {
$("#divLineItemComments").dialog({
autoOpen: false,
show: "blind",
hide: "explode",
width: 900,
height: 500
});
});
$("#_ctl0_ContentPlaceHolder1_cwgPhysical__ctl3_notesHl").click(function () {
$("#divLineItemComments").dialog("open");
return false;
});
});
function Popup() {
$("#divLineItemComments").dialog("open");
return false;
}
为了测试,我在gridview中硬编码了第一个链接的生成名称:
_ctl0_ContentPlaceHolder1_cwgPhysical__ctl3_notesHl
因为ASP.NET动态生成id,所以我需要动态绑定超链接的click事件。这样它就可以使用ASP.NET使用的命名。我可以硬编码到XX生成的名称(并希望它们始终生成相同的名称)。这似乎是一个可怕的解决方案......
如何让jQuery将我的Clicks绑定到我的超链接?
挂钩到rowbound可能会有效,但我不知道如何在这里绑定jQuery
protected void cwgPhysical_RowDataBound(object sender, GridViewRowEventArgs e)
{
Hyperlink.NavigateUrl = "javascript:Popup();";//this might work somehow...
}
答案 0 :(得分:1)
您可以使用相当低技术的解决方案来解决这个问题:只需创建一个虚拟cssClass并将其应用于生成的所有超链接。然后你有一个非常简单的选择器:
$('.myDummyCssClass').click(...);