且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

ListViewWebPart query issue while paging

更新时间:2022-08-12 21:33:29

If we change a ListView WebPart's query to implement search while paging, we may get the wrong result.

Use javascript function like this when execute query can solve the problem.

function FilteResult() {
        var filterFrame = document.getElementById('FilterIframe' + ctx.ctxId);
        if (typeof (filterFrame) == 'undefined' || filterFrame == null) {
            document.forms[0].submit();
            return;
        }
        var postUrl = filterFrame.getAttribute('FilterLink');
        var postUrl = postUrl.replace('Filter=1&', '');
        SubmitFormPost(postUrl);
    }

But I still not quite understand about this.

According to jianyi, it was not written by him so he also doesn't know what it is. But it really works.

 

Get some info from internet:

 

Something else to try if you are still having this problem: I had 2 XSLT DataView WebParts on a WebPart page in SharePoint. Each was looking at a different document library. Links for each document would work fine, but when I would hover over a document and click "View Properties" in one of the webparts, it tried to redirect me to a list item in the other list! What gives?!?! After hours of painstakingly comparing the two webparts and trying to find out the common thread, I stumbled on this nondescript call: ctx.ctxId = In both webparts, this value was the same. When you look at the javascript and ID nomenclature of the HTML contained within, this value is used to differentiate Javascript objects from one webpart to another. So for example: One of the objects is an IFrame. Its name is not "FilterIframe". It is "FilterIframe<somenumber>". When SharePoint's javascript calls are made, this number is used to find the IFrame of the webpart for which the call was intended. So, when I found out 2 of these webparts had the same ctxId, I just took the XSLT of one, pasted it into Notepad, and replaced with a . Pasted the webpart back in and all is well! Cheers, Jeremy http://www.budnack.net/Lists/Posts/Post.aspx?ID=22
According to this, each webpart on a page has a iframe container called FilterIframe<number> to find a webpart's iframe.
And most important, thanks Yunliang!