Захотел облегчить работу пользователей в SharePoint, и добавить кнопки фильтрации
по полю.
Т.к. значений там не много, то я создал кнопки при клике, на
которую переходили по адресу http://текущий_адрес.aspx?FilterField1=Vendor&FilterValue1=VMware
В FilterField1 указываем интернал нейм поля, в FilterValue1 значение.
Представлений стало много (активные заявки, выполненные и
т.п.) и для каждого представления прописывать руками жестко адрес было лень
сделал более универсальный код, который сам берет текущий адрес и работает с
ним.
Для красоты добавил Bootstrap.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 | <script src= "/Style%20Library/Js/jquery-1.11.1.min.js" type= "text/javascript" ></script> <script src= "/Style%20Library/bootstrap/js/bootstrap.min.js" type= "text/javascript" ></script> <link href= "/Style%20Library/bootstrap/css/bootstrap.min.css" rel= "stylesheet" type= "text/css" > <link href= "/Style%20Library/Style/NewStyle.css" rel= "stylesheet" type= "text/css" > <script> _spBodyOnLoadFunctionNames.push( "activButton" ); function activButton() { var param = getUrlParameter( "FilterValue1" ) if (param) { jQuery( ".btn-primary" ).attr( "class" , "btn btn-primary btn-lg" ) jQuery( "[id='" + param + "']" ).attr( "class" , "btn btn-primary btn-lg active" ) } else { jQuery( ".btn-primary" ).attr( "class" , "btn btn-primary btn-lg" ) jQuery( "[id='All']" ).attr( "class" , "btn btn-primary btn-lg active" ) } } function getUrlParameter(sParam) { var sPageURL = window.location.search.substring(1); var sURLVariables = sPageURL.split( '&' ); for ( var i = 0; i < sURLVariables.length; i++) { var sParameterName = sURLVariables[i].split( '=' ); if (sParameterName[0] == sParam) { sParameterName[1] = sParameterName[1].replace( "%20" , " " ) sParameterName[1] = sParameterName[1].replace( "+" , " " ) return sParameterName[1]; } } } function setLocation (value) { var queryParameters = {}, queryString = location.search.substring(1), re = /([^&=]+)=([^&]*)/g, m; while (m = re.exec(queryString)) { queryParameters[decodeURIComponent(m[1])] = decodeURIComponent(m[2]); } if (value == "" ) { location.search = "" ; } else { queryParameters[ 'FilterField1' ] = "Vendor" ; //change field Internal name queryParameters[ 'FilterValue1' ] = value ; location.search = $.param(queryParameters); } } function applyFilter(value) { console.log(value) if (value) { setLocation(value) } else { setLocation( "" ) } } </script> <div class= "lettersfilter" > <button class= "btn btn-primary btn-lg" id= "All" onclick= "applyFilter('')" type= "button" >Все</button> <button class= "btn btn-primary btn-lg" id= "Symantec" onclick= "applyFilter('Symantec')" type= "button" >Symantec</button> <button class= "btn btn-primary btn-lg" id= "VMware" onclick= "applyFilter('VMware')" type= "button" >VMware</button> <button class= "btn btn-primary btn-lg" id= "CommVault" onclick= "applyFilter('CommVault')" type= "button" >CommVault</button> <button class= "btn btn-primary btn-lg" id= "Check Point" onclick= "applyFilter('Check Point')" type= "button" >Check Point</button> </div> |
Комментариев нет:
Отправить комментарий