Repeater 内にいくつかの LinkButtons があります。それらを手動でクリックすると、ポストバックがうまくいきます。JavaScriptを介してLinkButtonをクリックしようとする試みはすべて失敗し、現在アイデアが不足しています(Googleも同様で、他のオプションが見つからないようです)。OnClick と OnCommand を交互に使用しようとしました。
リンクボタン:
<asp:Repeater ID="repItems" runat="server" OnItemDataBound="repItems_OnItemDataBound">
<ItemTemplate>
<asp:Panel ID="pnlItem" runat="server">
<asp:LinkButton ID="lnkItem" runat="server" OnClick="lnkItem_OnClick" OnCommand="lnkItem_OnCommand"></asp:LinkButton>
</asp:Panel>
</ItemTemplate>
</asp:Repeater>
Javascript:
eval(LinkButton.attr('href'); //Causes Sys.ParameterCountException
LinkButton.click(); //Nothing happens (no click event on LinkButton)
LinkButton.trigger('click'); //Same as LinkButton.click()
ポストバックを行うように OnClientClick を設定すると、click() 関数が機能し始めますが、Sys.ParameterCountException エラーが再び発生します。
lnkItem.OnClientClick = String.Format("__doPostBack('{0}', '');", lnkItem.UniqueID);
ScriptManager をリリース モードに変更することを提案する人もいますが、それはポストバックをトリガーせず、エラー メッセージを削除しただけです。
eval(LinkButton.attr('href');
Google Chrome で動作します。