私は SO は初めてで、ASP.NET はかなり初めてです。
クロスページ ポストバックを実行する前にコードを実行したい OnClientClick イベントを持つ LinkButton があります。
次のページから値を取得できますが、[表示] をクリックすると、HiddenField の値が [編集] に設定されます。いくつかのテストを行ったところ、クリックされたボタンに関係なく、すべての JavaScript 関数が呼び出されているようです。「編集」は最後の値セットなので、常に 2 ページ目から「編集」という値を取得しています。
Javascript:
function viewfunc(control) {
<% hidden.Value = "View"; %>
<% hiddenpanel.Update(); %>
return true;
}
function editfunc(control) {
<% hidden.Value = "Edit"; %>
<% hiddenpanel.Update(); %>
return true;
}
形:
<form id="form1" runat="server">
<asp:UpdatePanel runat="server" ID="up1" UpdateMode="Conditional">
<ContentTemplate>
<asp:Panel ID="Panel1" runat="server">
<asp:GridView Id="gridview1" runat="server" AllowPaging="True">
<Columns>
// Data fields here...
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton ID="viewlabel" runat="server" Text="View" OnClientClick="if(!viewfunc(this)) return false;" PostBackURL="~/NextPage.aspx"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton ID="editlabel" runat="server" Text="Edit" OnClientClick="if(!editfunc(this)) return false;" PostBackURL="~/NextPage.aspx"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</asp:Panel>
</ContentTemplate>
</asp:UpdatePanel>
<asp:UpdatePanel runat="server" ID="hiddenpanel" UpdateMode="Conditional">
<ContentTemplate>
<asp:Panel runat="server">
<asp:HiddenField runat="server" Id='hidden' Value='Empty' />
</asp:Panel>
</ContentTemplate>
</asp:UpdatePanel>
</form>
注: これらの関数をコード ビハインド関数として呼び出すことをお勧めしますが、クリック イベントの後、ポストバックの前にコード ビハインドを実行する方法が見つかりませんでした。
あらゆる提案をありがとう!