首先,我阅读了很多关于这个问题的线程并自己解决了这个问题。但是这件事让我很困惑..
代码
<Leads:LeadsListing runat="server" ID="MyLeadsList" List="MyLeads"/>
<Leads:LeadsListing runat="server" ID="NewLeadsList" List="Unassigned" />
两者都获取相同的网格视图,但对它们应用了过滤器(效果很好)
正在调用此脚本Page_Load
ScriptManager.RegisterStartupScript(
Detailsupdatepanel,
Detailsupdatepanel.GetType()
"clickableTrs",
"$('#" + LeadsGridview.ClientID + "table tr td:first-child a').each(function(){
var func = Function('event', this.href.substring(\"javascript:\".length) +';
if(event.stopPropagation){event.stopPropagation();
} else{
event.cancelBubble = true;
}');
this.href = '#';
$(this).click(func);
});
$('.DarkBackground, .ahover').click(function(){
$('#" + LeadsGridview.ClientID + " tr td:first-child a').unbind('click');
$(this).find('a').click();
});",
true);
我不明白只有第一个 gridview (单击时)如何给我说“递归过多”的错误,而它在第二个 gridview 上工作正常。特别是当两者都调用完全相同的函数并且看起来完全相同时?除了被过滤:(
编辑
这是html渲染的样子,
<asp:GridView ID="LeadsGridview" runat="server" DataKeyNames="id" CssClass="Basic" Width="98%" gridlines="None" allowsorting="True" autogeneratecolumns="False" EnableViewState="true">
<HeaderStyle CssClass="TableHeaderStyle" />
<AlternatingRowStyle CssClass="DarkBackground" />
<RowStyle CssClass="ahover" />
<Columns>
<asp:TemplateField HeaderText="Company">
<ItemTemplate>
<asp:LinkButton runat="server" CommandName="ShowDetailsClick" CommandArgument='<%# Eval("id") %>'><%# Eval("Company") %></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="City" HeaderText="City" />
<asp:BoundField DataField="State" HeaderText="State" />
<asp:TemplateField HeaderText="Created date">
<ItemTemplate>
<%# DateTime.Parse(Eval("CreatedDate") as string).ToString("d") %>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="Country" HeaderText="Country" />
<asp:BoundField DataField="D1_contact__r" HeaderText="Contact" />
<asp:BoundField DataField="D2_owner__r" HeaderText="Owner" />
<asp:BoundField DataField="D2_contact__r" HeaderText="Owner" />
</Columns>
</asp:GridView>
为了使整个可点击而不是只是第一个中的链接,我解除了该点击事件的绑定,然后将其重新绑定到 . 我之前在这里遇到了一些问题,因为它是一个 ajax 调用( href = javascript:__doPostBack('ctl00$ctl00$MainArea$MainArea$Cart$ContentItem$ctl00$EditCartButton','')
)