我是新来的,对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