目前,我尝试使用从Cookie中获取的值来填充filterToolbar。如果过滤器有cookie数据,我希望它填充相应的文本框并过滤jqGrid以获取该数据。
我使用ASP.net webforms,因此我的大多数数据都已初始化。如何/在哪里可以添加javascript以实现此目的?
答案 0 :(得分:0)
我实际上弄明白了我在做什么。
所以我最终做的解决方案是在document.ready function
中添加一个超时功能$(document).ready(function () {
// some code
setTimeout(function () {
$('#Jqgrid1')[0].triggerToolbar();
}, 500)
//some code
}
我的猜测是我无法使用$('#grid')[0] .toggleToolbar()强制它,因为无论何时我尝试使用它,它都是在整个之前网格设置完毕。
在ASP webform中,我注册了几个函数。
<cc1:JQGrid ID="Jqgrid1" runat="server"
Height="630"
SearchDialogSettings-Draggable="true"
EnableViewState="false"
AutoWidth="True" >
<ClientSideEvents
LoadComplete="Jqgrid1_LoadComplete"
GridInitialized="initGrid"
/>
<%-- grid code --%>
</cc1:JQGrid>
加载网格后执行LoadComplete。我尝试在那里触发我的工具栏,但没有工作。我的猜测是,在网格执行中使用triggerToolbar()函数还为时过早。
同样适用于GridInitialized事件(尽管这两个事件似乎都暗示着网格完成了它的事情......但无论如何......)
我读取cookie的方式实际上是在GridInitialized事件处理程序中。
function initGrid() {
var myJqGrid = $(this);
var valueName = 'GridFilters';
var myCookie = document.cookie;
var gridFilterString;
var gridFilterArray;
var currentFilter;
var myCookie_arr;
var myDic = {};
if (myCookie.indexOf(valueName) > -1) { // don't even bother if the cookie isn't there...
myCookie_arr = myCookie.split("; "); // looking for the cookie I need
// read cookies into an array
for (var i = 0; i < myCookie_arr.length; i++)
{
parts = myCookie_arr[i].split("=");
first = parts.shift(); // remove cookie name
myDic[first.trim()] = parts.join("=").trim(); // handles multiple equality expressions in one cookie
}
if (myDic.hasOwnProperty("GridFilters"))
gridFilterString = myDic["GridFilters"];
if (gridFilterString != "NONE") {
myFiltersDic = {}
myFiltersArr = gridFilterString.split("&")
for (var i = 0; i < myFiltersArr.length; i++) {
parts = myFiltersArr[i].split("=");
myFiltersDic[parts[0].trim()] = parts[1].trim();
}
myParams = $(this).jqGrid("getGridParam", "postData");
var filters = []
for (keys in myFiltersDic) {
$('#gs_' + keys.trim()).val(myFiltersDic[keys].trim());
}
$.cookie('m_blnSearchIsHidden', "0", "/");
if (!isLoaded)
{
$(this)[0].toggleToolbar();
}
isLoaded = true;
}
}
}