【问题标题】:How to populate jqGrid filter toolbar and search when the page loads (ASP.net webforms)如何在页面加载时填充 jqGrid 过滤器工具栏和搜索(ASP.net webforms)
【发布时间】:2015-08-19 17:30:30
【问题描述】:

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

我正在使用 ASP.net 网络表单,所以我的大部分数据已经初始化。我如何/在哪里可以添加 javascript 来实现这一点?

【问题讨论】:

  • 请添加您尝试过的代码
  • 我想我解决了这个问题。它在下面的答案中!如果您对此有任何 cmet,请告诉我!

标签: javascript jquery asp.net jqgrid


【解决方案1】:

我实际上弄清楚了我在做什么。

所以我最终的解决方案是在 document.ready 函数中添加超时函数

$(document).ready(function () {

    // some code

    setTimeout(function () {
        $('#Jqgrid1')[0].triggerToolbar();
    }, 500)

    //some code
}

我的猜测是我无法使用 $('#grid')[0].toggleToolbar() 来强制它,因为每当我尝试使用它时,都是在整个网格完成设置之前。

在 ASP 网络表单中,我注册了几个函数。

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

}

【讨论】:

    猜你喜欢
    • 2014-08-30
    • 1970-01-01
    • 2023-04-10
    • 1970-01-01
    • 1970-01-01
    • 2011-06-25
    • 1970-01-01
    • 2016-08-15
    • 1970-01-01
    相关资源
    最近更新 更多