有时候,我们需要在用户打开Infopath表单的时候进行一些判断。 例如,我现在遇到一个问题就是,某些用户登陆SharePoint的时候使用的是公用帐号,但是在填写表单时肯定要有所区分。那么如何在表单打开的时候进行干预呢?答案是重写OnPreInit事件。
注意:不能在OnLoad中做,已然来不及了。
<%@ Page inherits="Microsoft.Office.InfoPath.Server.Controls.FormServerPage,Microsoft.Office.InfoPath.Server, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" EnableSessionState="true" AutoEventWireup="false" EnableViewState="false" LinePragmas="false" Language="C#" ValidateRequest="true" %> <%@ Register Tagprefix="InfoPath" Namespace="Microsoft.Office.InfoPath.Server.Controls" Assembly="Microsoft.Office.InfoPath.Server, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> <script runat="server"> protected override void OnPreInit(EventArgs e){ Session["Test"]="chenxizhang"; Response.Redirect("http://server2003:8080/Login.aspx"); } </script> <html> <head runat="server"> </head> <body style="margin: 0px;overflow:auto;"> <form runat="server" id="HostingForm" method="post" enctype="multipart/form-data" style="100%;"> <InfoPath:XmlFormView id="FormControl" Style="100%;" runat="server"/> </form> </body> </html>