我们为SharePoint调查获得了两个不同的错误报告

时间:2013-04-04 16:47:25

标签: sharepoint survey

当用户尝试两次回答调查时,很好的回答是:“您不能再次回复此调查。”但是我们中的一些人正在为ASP.NET应用程序获得标准的“崩溃”屏幕。

这是一个配置项还是什么(我们在SP2007上)?

提前致谢...

1 个答案:

答案 0 :(得分:0)

我最终通过使用此代码完全替换默认的“Respond to ...”按钮处理程序解决了这个问题,该代码取代了任何重新接受调查的尝试,并通过警告通知用户他已经完成了。< / p>

$(document).ready(function() {  
    var myQueryOptions = "<QueryOptions />";
    //this was amazing: the value you need gets supplied by <UserID Type='Integer'/> (via Vadim Gremyachev)
    var myQuery = "<Query><Where><Eq><FieldRef Name='Author'/><Value Type='Integer'><UserID Type='Integer'/></Value></Eq></Where></Query>"; //find any instance of the current user
    var listPromise = $().SPServices({
        operation:  "GetListItems",
        listName: "{58ECDD94-8817-43A9-ACEC-42A1657E2F25}", //dev  Survey list
        CAMLViewFields: "<ViewFields><FieldRef Name='ID' /></ViewFields>",
        CAMLQuery: myQuery,
        CAMLQueryOptions: myQueryOptions
    });
    listPromise.done(function() {
        var iCount = $(listPromise.responseXML).SPFilterNode("rs:data").attr("ItemCount");
        if(iCount > 0) {
            $("[id*='_ctl00_toolBarTbl_RptControls_ctl00_diidIONewItem']").each(function() {
                $(this).attr("onclick", "");
                $(this).attr("href", "");
                $(this).on("click", function() {alert("You've already taken the survey!");});
            });
        }
        iCount++;
    });
    listPromise.fail(function() { alert("whoops");});
}); // $(document).ready()