如何填充jqGrid过滤器工具栏并在页面加载时进行搜索(ASP.net webforms)

How to populate jqGrid filter toolbar and search when the page loads (ASP.net webforms)

本文关键字:加载 搜索 net ASP webforms 填充 何填充 jqGrid 过滤器 工具栏      更新时间:2023-09-26

目前,我正在尝试用从cookie中获取的值填充filterToolbar。如果有用于过滤器的cookie数据,我希望它填充相应的文本框并为该数据过滤jqGrid。

我使用ASP.net webforms,所以我的大部分数据已经初始化。我如何/在哪里可以添加javascript,以得到这一点?

我知道我在做什么了。

所以我最终做的解决方案是在文档中添加超时函数。准备好函数

$(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()函数还为时过早。

gridininitialized事件也是如此(尽管这两个事件对我来说似乎意味着网格已经完成了它的事情…但无论…)

我读取cookie的方式实际上是在gridininitialized事件处理程序中。

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;
    }
}

}