まず、この問題に関する多くのスレッドを読み、以前に自分で解決しました。しかし、この問題は私を混乱させます..
コード
<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);
最初のグリッドビュー(クリック時)だけで「再帰が多すぎる」というエラーが表示されるのに、2 番目のグリッドビューでは正常に動作することがわかりません。特に、両方がまったく同じ関数を呼び出し、まったく同じように見える場合はどうなりますか? フィルタリングされることは別として:(
編集
これは、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>
最初のリンクだけではなく全体をクリック可能にするために、そのクリック イベントのバインドを解除してから、. javascript:__doPostBack('ctl00$ctl00$MainArea$MainArea$Cart$ContentItem$ctl00$EditCartButton','')
ajax呼び出し(href = )であるため、以前にここでいくつかの問題がありました