我是新來的,對ASP.NET很新。在跨頁面回發之前調用javascript OnClientClick處理程序
我有一個LinkButton和一個OnClientClick事件,我想在做一個跨頁面回發之前執行一些代碼。
這似乎工作 - 我能夠從下一頁檢索值 - 但是,當我點擊「查看」HiddenField值設置爲「編輯」。我做了一些測試,似乎所有的javascript函數都被調用,無論點擊哪個按鈕。 「編輯」是最後設置的值,因此我總是從第二頁中檢索「編輯」值。
的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>
注:我寧願來調用這些功能代碼隱藏的功能,但我無法找到一個方法後執行代碼隱藏單擊事件但在回發之前。
感謝您的任何和所有的建議!
您應該瞭解ASP.NET頁面的生命週期,如何編寫javascript,什麼是ViewState,以便成功完成這個完整的理解。 – Prash