在siteserver上开发问卷调查

        进公司第一个任务就是在siteserver上增加问卷调查。主要原因是siteserver自带的投票功能比较单一每个投票是一个问题。其中还有个bug,就是当投票选项达到50以上就出现问题。因此需要进行问卷调查可以理解是一个调查下多个投票。数据库设计什么的就不说了。这里主要是说下如何将问卷支持添加到siteserver的模板中生成静态页面。

思路如下:

1、后台Vote.aspx主要功能根据voteid绑定问卷的题目答案以及进行提交和查看结果处理。首先重写Vote.aspx的Render事件。让每次请求Vote.aspx的时候生成对应的html文件,如Votetemplate_43.htm。这里面不能有<head>之类的。

参考代码:

 protected override void Render(HtmlTextWriter writer)
 {
        StringWriter html = new StringWriter();
        System.Web.UI.HtmlTextWriter tw = new System.Web.UI.HtmlTextWriter(html);
        base.Render(tw);
        StreamWriter sw;
        string path = Server.MapPath("Vote") + "template_" + titleid + ".htm";
        sw = new StreamWriter(path, false, System.Text.Encoding.UTF8);
        int findex = html.ToString().IndexOf("<form");
        int lindex = html.ToString().IndexOf("</form>");
        sw.Write(html.ToString().Substring(findex, lindex - findex + 7));
        sw.Close();
        tw.Close();
        Response.Write(html.ToString());
 }

这样就生成了表单这类的所有问卷信息。说明下,我这的问卷绑定是通过在表单中的PlaceHolder1动态添加单选、多选、问答等情况的。

2、通过ajax调用上面生成的页面。

function get(num)
{
    var http = GetXmlHttp();
    var url;
   url = "Votetemplate_"+num+".htm";
    http.open("GET", url, true);
    http.onreadystatechange = function()
    {
        if (http.readyState == 4 && http.status ==200)
        {
            var text;
            text = bytes2BSTR(http.responseBody);
           document.getElementById("HtmlDiv").innerHTML =text;
         }
    }
    http.send(null);
}
function GetXmlHttp()
{
    var C = null;
    try
    {
        C = new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch(e)
    {
        try
        {
         C = new ActiveXObject("Microsoft.XMLHTTP");
        }
        catch(sc)
        {
            C = null;
        }
    }

    if( !C && typeof XMLHttpRequest != "undefined" )
    {
        C = new XMLHttpRequest();
    }
    return C;
}

直接在模板中写上:

<script type="text/javascript" src="readhtml.js"></script>

<div id="HtmlDiv"></div>

然后在onload中调用Test(id)即可

原本的思路是在GetXmlHttp()中动态添加<div id="HtmlDiv"></div>省去在模板中写的,后来发现不行。还有onload中的Test原来打算写在readhtml.js中的。不是要考虑传入参数嘛。我想到了每次生成调用js的时候修改js文件也就是修改num占位符。不过后来被否定,因为那样I/O操作将很频繁,没有必要。

3、大家可能看到了bytes2BSTR函数没错,用它是为了解决乱码的。网上解决通过因为ajax异步输出文字的时候出来乱码。在这就不做说明了。

最后说明:可能有人看到这里觉得用ajax去调用html文件有必要吗?直接用js将html中的内容读入就不行了。我也说过,不过因为是js操作文件必须设置IE中的安全。(IE6.0中)希望对大家有用吧。

转载于:https://www.cnblogs.com/yueyue_jwfm/archive/2009/07/10/1520397.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Siteserver CMS 提供了插件扩展机制,允许开发人员根据需求开发和集成自定义的功能模块。以下是一些关于 Siteserver CMS 插件开发的基本步骤: 1. 环境准备:确保你已经安装了 Siteserver CMS 的开发环境,并熟悉相关的开发工具和技术,比如 Visual Studio 和 .NET。 2. 创建插件项目:在 Visual Studio 中创建一个新的类库项目,作为插件的开发项目。可以选择使用 Siteserver CMS 提供的模板来简化插件项目的创建。 3. 定义插件接口:根据插件的功能需求,定义一个或多个接口,用于插件与 Siteserver CMS 的交互。接口可以包含方法、事件和属性等。 4. 实现插件:在插件项目中实现定义的接口,编写具体的功能代码。可以使用 Siteserver CMS 提供的 API 和服务来访问和操作系统的各种功能和数据。 5. 打包和部署插件:将插件项目编译生成的 DLL 文件打包成插件包,并将插件包部署到 Siteserver CMS 的插件目录中。 6. 注册插件:在 Siteserver CMS 的管理后台中注册插件,配置插件的参数和权限等。这样插件就可以在网站中被启用并使用了。 7. 测试和调试:在 Siteserver CMS 中测试和调试插件的功能,确保插件正常运行并与系统进行正确的交互。 请注意,在插件开发过程中,建议参考 Siteserver CMS 的官方文档和开发者社区,以获取更详细和准确的插件开发指南和示例代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值