0

まず、この問題に関する多くのスレッドを読み、以前に自分で解決しました。しかし、この問題は私を混乱させます..

コード

<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 = )であるため、以前にここでいくつかの問題がありました

4

0 に答える 0