在开发ASP.NET项目过程中,经常会需要向PageOffice指定的保存页面传递参数。本文主要讲述的就是几种传递参数的方法。
有些参数可以简单的通过URL传递或者通过Session、Cookie等传递,但当内容为中文或者传递的内容很多时,再通过这几种方式传递参数就不行或者太复杂了。下面我就来介绍PageOffice开发平台下,通过Form表单中的Form控件传递参数的方法。该方法既解决了无需编码就传递中文参数的问题,又解决了传递多个参数的问题。就以简单的打开一个Word文件,并保存,在保存页面中通过几种方式获取返回值为例吧。
第一步:请先安装PageOffice的服务器端的安装程序,之后在你的网站或项目的根目录下添加pageoffice文件夹(在
PageOffice官方网站的“下载中心”中可下载相应的压缩包,解压之后直接将PageOffice实例代码里的pageoffice文件夹拷贝到根目录下就可以了)。
第二步:在网站或项目中添加文件夹存放word模板文件,我习惯命名为“doc”,将要打开的文件拷贝到该文件夹下,我要打开的文件为“test.doc”。
第三步:在网站或项目中创建动态页面EditWord.aspx。在工具箱中拖动一个PageOfficeCtrl控件到页面上(PageOfficeCtrl控件位于工具箱最下方)。
第四步:在EditWord.aspx页面中,为PageOfficeCtrl控件所在的层(<div></div>)设置大小,否则Word文件在线打开后无法正常显示,再在页面中添加Html标签:<input type="text" />、<select></select>、<input type="hidden"/>,部分代码如下:
    <input id="Hidden1" name="age" type="hidden" value="25" />
    <span style="color: Red;">
姓名:</span>
    <input id="Text1" name="userName" type="text" /><br />
    <span style="color: Red;">性别:
</span>
    <select id="Select1" name="selSex">
    <option value="男">男
</option>
    <option value="女">女
</option>
    </select>
    <!--PageOfficeCtrl控件
-->
    <div style="width: auto; height: 700px;">
    <po:PageOfficeCtrl ID="PageOfficeCtrl1" runat="server" CustomToolbar="True" Menubar="True">
    </po:PageOfficeCtrl>
    </div>
在EditWord.aspx.cs中设置PageOffice的服务器页面、保存页面和打开Word文件的方式,部分代码如下:

    //设置服务器页面
    PageOfficeCtrl1.ServerPage = "pageoffice/server.aspx";
    PageOfficeCtrl1.Caption = "
演示:向保存页面传递参数,更新人员信息";
    PageOfficeCtrl1.AddCustomToolButton("保存
", "Save()",1);
    PageOfficeCtrl1.AddCustomToolButton("全屏
", "SetFullScreen()", 4);

    //设置保存页

    PageOfficeCtrl1.SaveFilePage = "SaveFile.aspx?id=1";//通过url传递id参数

//打开文件
    PageOfficeCtrl1.WebOpen("doc/test.doc", PageOffice.OpenModeType.docNormalEdit, "张佚名");
第五步:在SaveFile.aspx.cs中,利用PageOffice.FileSaver对象获取EditWord.aspx页面传递过来的值,部分代码如下:

//定义FileSaver对象
    PageOffice.FileSaver fs = new PageOffice.FileSaver();
    //
保存Word文内容到本地磁盘中
    fs.SaveToFile(Server.MapPath("doc/") + fs.FileName);

string userName = "";
    int age = 0;
    string sex = "";
    //
获取通过Form表单中的标签控件传递过来的参数值,注意fs.GetFormField("HTML标签的name名称")方法中的参数名是值标签的“name”属性而不是Id;且当传递的是中文时也无需编码、解码


    //
获取通过文本框<input type="text" />标签传递过来的值
    if (fs.GetFormField("userName") != null && fs.GetFormField("userName").Trim().Length > 0)
    {
    userName = fs.GetFormField("userName");
    }

//获取通过隐藏域传递过来的值
    if (fs.GetFormField("age") != null && fs.GetFormField("age").Trim().Length > 0)
    {
     age = int.Parse(fs.GetFormField("age"));
    }

//获取通过<select>标签传递过来的值
    if (fs.GetFormField("selSex") != null && fs.GetFormField("selSex").Trim().Length > 0)
    {
     sex = fs.GetFormField("selSex");
    }
    //
设置保存返回值,可在SendParameters.aspx页面通过该返回值判断是否保存成功或者获取一些需要的数据,如记录的ID等
    fs.CustomSaveResult = "OK";
    //
关闭FileSaver对象
    fs.Close();
除通过以上方式传递参数外,还可以通过<input id="Radio1" type="radio" />、<textarea id="TextArea1"></textarea>、<input id="Checkbox1" type="checkbox" />等Html标签传递参数,获取参数值的方法与上述代码相同:fs.GetFormField("HTML标签的name名称")。

用PageOffice如何实现向保存页面传递参数

在开发ASP.NET项目过程中,经常会需要向PageOffice指定的保存页面传递参数。本文主要讲述的就是几种传递参数的方法。
有些参数可以简单的通过URL传递或者通过Session、Cookie等传递,但当内容为中文或者传递的内容很多时,再通过这几种方式传递参数就不行或者太复杂了。下面我就来介绍PageOffice开发平台下,通过Form表单中的Form控件传递参数的方法。该方法既解决了无需编码就传递中文参数的问题,又解决了传递多个参数的问题。就以简单的打开一个Word文件,并保存,在保存页面中通过几种方式获取返回值为例吧。
第一步:请先安装PageOffice的服务器端的安装程序,之后在你的网站或项目的根目录下添加pageoffice文件夹(在
PageOffice官方网站的“下载中心”中可下载相应的压缩包,解压之后直接将PageOffice实例代码里的pageoffice文件夹拷贝到根目录下就可以了)。
第二步:在网站或项目中添加文件夹存放word模板文件,我习惯命名为“doc”,将要打开的文件拷贝到该文件夹下,我要打开的文件为“test.doc”。
第三步:在网站或项目中创建动态页面EditWord.aspx。在工具箱中拖动一个PageOfficeCtrl控件到页面上(PageOfficeCtrl控件位于工具箱最下方)。
第四步:在EditWord.aspx页面中,为PageOfficeCtrl控件所在的层(<div></div>)设置大小,否则Word文件在线打开后无法正常显示,再在页面中添加Html标签:<input type="text" />、<select></select>、<input type="hidden"/>,部分代码如下:
    <input id="Hidden1" name="age" type="hidden" value="25" />
    <span style="color: Red;">
姓名:</span>
    <input id="Text1" name="userName" type="text" /><br />
    <span style="color: Red;">性别:
</span>
    <select id="Select1" name="selSex">
    <option value="男">男
</option>
    <option value="女">女
</option>
    </select>
    <!--PageOfficeCtrl控件
-->
    <div style="width: auto; height: 700px;">
    <po:PageOfficeCtrl ID="PageOfficeCtrl1" runat="server" CustomToolbar="True" Menubar="True">
    </po:PageOfficeCtrl>
    </div>
在EditWord.aspx.cs中设置PageOffice的服务器页面、保存页面和打开Word文件的方式,部分代码如下:

    //设置服务器页面
    PageOfficeCtrl1.ServerPage = "pageoffice/server.aspx";
    PageOfficeCtrl1.Caption = "
演示:向保存页面传递参数,更新人员信息";
    PageOfficeCtrl1.AddCustomToolButton("保存
", "Save()",1);
    PageOfficeCtrl1.AddCustomToolButton("全屏
", "SetFullScreen()", 4);

    //设置保存页

    PageOfficeCtrl1.SaveFilePage = "SaveFile.aspx?id=1";//通过url传递id参数

//打开文件
    PageOfficeCtrl1.WebOpen("doc/test.doc", PageOffice.OpenModeType.docNormalEdit, "张佚名");
第五步:在SaveFile.aspx.cs中,利用PageOffice.FileSaver对象获取EditWord.aspx页面传递过来的值,部分代码如下:

//定义FileSaver对象
    PageOffice.FileSaver fs = new PageOffice.FileSaver();
    //
保存Word文内容到本地磁盘中
    fs.SaveToFile(Server.MapPath("doc/") + fs.FileName);

string userName = "";
    int age = 0;
    string sex = "";
    //
获取通过Form表单中的标签控件传递过来的参数值,注意fs.GetFormField("HTML标签的name名称")方法中的参数名是值标签的“name”属性而不是Id;且当传递的是中文时也无需编码、解码


    //
获取通过文本框<input type="text" />标签传递过来的值
    if (fs.GetFormField("userName") != null && fs.GetFormField("userName").Trim().Length > 0)
    {
    userName = fs.GetFormField("userName");
    }

//获取通过隐藏域传递过来的值
    if (fs.GetFormField("age") != null && fs.GetFormField("age").Trim().Length > 0)
    {
     age = int.Parse(fs.GetFormField("age"));
    }

//获取通过<select>标签传递过来的值
    if (fs.GetFormField("selSex") != null && fs.GetFormField("selSex").Trim().Length > 0)
    {
     sex = fs.GetFormField("selSex");
    }
    //
设置保存返回值,可在SendParameters.aspx页面通过该返回值判断是否保存成功或者获取一些需要的数据,如记录的ID等
    fs.CustomSaveResult = "OK";
    //
关闭FileSaver对象
    fs.Close();
除通过以上方式传递参数外,还可以通过<input id="Radio1" type="radio" />、<textarea id="TextArea1"></textarea>、<input id="Checkbox1" type="checkbox" />等Html标签传递参数,获取参数值的方法与上述代码相同:fs.GetFormField("HTML标签的name名称")。