相关疑难解决方法(0)

持久化jqGrid列首选项

我的ASP.NET MVC 3应用程序上有一些jqGrids,它们有很多列.我在列定义中添加了以下内容,以默认隐藏一些列:

colModel: [
   { name: 'IceCreamID', hidden: true},
   { name: 'RecipeID', hidden: true }
Run Code Online (Sandbox Code Playgroud)

这很好用.这些列在我的网格上不可见.

然后我添加了这个来实现列选择器:

var grid = $('#icecreamGrid');
grid.jqGrid('navButtonAdd', '#icecreamPager',
{ caption: "Columns", buttonicon: "ui-icon-calculator",
  title: "Choose Columns",
  onClickButton: function() {
     grid.jqGrid('columnChooser');
  }
});
Run Code Online (Sandbox Code Playgroud)

太棒了,现在提出了专栏选择器.然后我将以下内容添加到我从未希望在列选择器中显示的列中:

colModel: [
   { name: 'IceCreamID', hidden: true, hidedlg: true},
Run Code Online (Sandbox Code Playgroud)

所以我现在可以隐藏/显示列就好了.现在,您如何坚持这些信息?D B?作为一个cookie?另一种方式?是否有一种首选的方式来存储这种真正是用户偏好的信息,而不是与数据本身相关的信息?


更多信息

根据Oleg在下面的评论,我想提供更多信息.

这里的要点是我有10-15列的网格,可以根据用户的偏好显示.举一个简单的例子,我的一个网格有以下9列:

IceCream|ShortName|HasNuts|SugarAdded|LimitedRun|PromoItem|Facility|FirstRun|LastRun
Run Code Online (Sandbox Code Playgroud)

用户可以根据个人喜好隐藏/显示这9列中的任何一列.

我想要做的是提供一种方法来持久保存特定用户想要查看的列,以便他/她不必在每次显示带有该网格的页面时重新选择这些列.

asp.net-mvc jqgrid asp.net-mvc-3

27
推荐指数
1
解决办法
2万
查看次数

使用JQuery创建链接的最佳方法?

我们使用jqGrid自定义格式化程序在JQuery网格中输出链接.我们只是使用String操作构建链接a:

var s = "<a title=\"Blah\" href=\"javascript:BlahFunc('" + options.rowId + "')\">This is blah<a>";
Run Code Online (Sandbox Code Playgroud)

有没有更"聪明"的方法来使用JQuery创建链接(和其他表单元素)?

jquery jqgrid

23
推荐指数
4
解决办法
8万
查看次数

使用GET从jqGrid中的列值链接到新页面

我创建了一个包含一些字段的jqGrid,例如:

job_id,名称等

我要做的是使得当点击job_id列中的值时,它会将它们重定向到:

job.php?job_id =(他们点击的值)

我开始尝试使用以下作为我的colModel:

{ name:'job_id', index:'job_id', edittype:'select', formatter:'showlink',
  formatoptions:{baseLinkUrl:'job.php'}, width:50, align:'center' }
Run Code Online (Sandbox Code Playgroud)

但是这会导致重定向到:

job.php?JOB_ID =(ROW_ID)

我做了一些搜索,发现这个软件的开源版本开发人员的帖子建议使用以下colModel和其他JS:

{ name:'job_id', index:'job_id', edittype:'select', formatter:'showlink',
  formatoptions:{baseLinkUrl:'#'}, width:50, align:'center' }

loadComplete: function() {
    var myGrid = $("#home_list");
    var ids = myGrid.getDataIDs();
    for (var i = 0, idCount = ids.length; i < idCount; i++) {
        $("#"+ids[i]+" a",myGrid[0]).click(function(e) {
            var hash=e.currentTarget.hash;// string like "#?id=0"
            if (hash.substring(0,5) === '#?id=') {
                var id = hash.substring(5,hash.length);
                var text = this.textContent;
                location.href="job.php?id="+text;
            }
            e.preventDefault();
        });
    }   
}
Run Code Online (Sandbox Code Playgroud)

但这与IE不兼容.除此之外,当在jqGrid中显示大量行时,加载需要很长时间,比如5秒+ …

jquery json hyperlink jqgrid

7
推荐指数
1
解决办法
1万
查看次数

jqgrid复选框更改事件

我的数据库中有true/false值.我想用jqgrid中的复选框更新它们.一旦该值设置为true,它将保持为真且不应更改.请看一下我的专栏模型:

{
    name : 'available',
    width : 12,
    resizable: true,
    editable: true,
    align: 'center',
    edittype:'checkbox',
    formatter: "checkbox", formatoptions: {disabled : false},
    classes:'check',
    editrules:{required:false}, editoptions:{size:39,value:"True:False"}
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试在选中复选框时捕获事件,目前它们都未经检查,到目前为止我已经尝试过:

jq(".check input").each(function(){
    jq(this).click(function(){
        aler("works");
    });
});

jq("input[type='checkbox']").change(function(){
    alert("works");
}); 

jq(":checkbox").parent().click(function(evt) {
    if (evt.target.type !== 'checkbox') {
        var $checkbox = jq(":checkbox", this);
        $checkbox.attr('checked', !$checkbox.attr('checked'));
        $checkbox.change();
        alert("");
    }
});
Run Code Online (Sandbox Code Playgroud)

这些都不起作用,我被卡住了不知道还有什么可以尝试.

使用firebug检查复选框代码时,它看起来像这样:

<input type="checkbox" offval="no" value="false">
Run Code Online (Sandbox Code Playgroud)

javascript jquery jqgrid

7
推荐指数
2
解决办法
3万
查看次数

jqGrid - 将自定义HTML插入单元格

我试图将一个普通的旧html表转换为jqGrid.旧表有一个包含标签的列,这些标签使用无序列表和列表项构建.

这是前面表格的一个例子(jsfiddle)和之后的jqGrid.

在这个例子中,我使用自定义格式化程序,它使用jQuery模板构建DOM元素,然后格式化程序从结果DOM元素返回$ .html().

function getTagCellContents(cellvalue) {
    var domitems=$("#jqgrid-tag-list-item").tmpl({tags: callvalue});
    return domitems.html();
}
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是生成的html中包含的空格导致行太高.这也导致单元格上的"标题"属性笨拙.

jqGrid是否提供了一个API,用于将DOM对象直接插入到单元格中,而不是从自定义格式化程序返回文本?将自定义html放入jqGrid单元格的最佳做法是什么?

jquery cell jqgrid jquery-templates

7
推荐指数
1
解决办法
7864
查看次数

JQgrid复选框onclick更新数据库

我的JqGrid中有一个复选框列,它从DB加载,因此在加载时检查或不检查.

我想要的是:如果用户正在检查或取消选中复选框,我想同时更新数据库.我不希望用户按Enter或任何东西.只需单击一下即可向DB发送操作

name:'Aktiv',index:'Aktiv',width:100,edittype:'checkbox',align:'center',formatter:"checkbox",editable:true,formatoptions:{disabled:false}

jqgrid

6
推荐指数
1
解决办法
1万
查看次数

在jqgrid中使用自定义函数调用的超链接/按钮

我想在jqgrid的每一行中添加一个超链接/按钮,它会触发一个自定义的javascript函数.厌倦了各种试验.

jQuery('#ProductListGrid').jqGrid({
    url: '/Product/ProductListGrid',
    datatype: 'json',
    multiselect: true,
    height: 250,
    autowidth: true,
    mtype: 'GET',
    loadComplete: addlinks,
    colNames: ['ProductId', 'ProductName', 'edit'],
    colModel: [
      { name: 'ProductId', index: 'ProductId',key:true, width: 70, hidden: true, editable: true, size: 5 },
      { name: 'ProductName', index: 'ProductName', width: 70, editable: true },
      { name: 'edit', index: 'edit', width: 70},

    ],
    pager: jQuery('#ProductListGrid_pager'),
});
function addlinks() {
    var ids = jQuery("#ProductListGrid").getDataIDs();
    alert(ids);
    for (var i = 0; i < ids.length; i++) {
        be = "<a href='#' style='height:25px;width:120px;' …
Run Code Online (Sandbox Code Playgroud)

javascript jquery jqgrid

5
推荐指数
1
解决办法
6790
查看次数

jqGrid和jquery点击事件的问题

我在我的页面上加载了一个jqGrid.网格每行都有一个删除按钮.我正在尝试在"删除"按钮上使用jquery UI对话框确认.

这是我的javascript代码:

<script type="text/javascript">

    $(document).ready(function () {

        $("#list").jqGrid({
            url: '/MyController/MyFunction/',
            datatype: 'json',
            mtype: 'POST',
            colNames: ['', 'Name', ''],
            colModel: [
                { name: 'Edit', index: 'Edit', width: 40, align: 'left', sortable: false },
                { name: 'Name', index: 'Name', width: 120, align: 'left' },
                { name: 'Delete', index: 'Delete', width: 50, align: 'left', sortable: false }],
            pager: $('#pager'),
            rowNum: 10,
            rowList: [10, 20, 50],
            sortname: 'Name',
            sortorder: "asc",
            viewrecords: true,
            width: 700
        });


        $("#dialog-confirm").dialog({
            autoOpen: false,
            modal: true,
            buttons: {
                "Delete": …
Run Code Online (Sandbox Code Playgroud)

javascript asp.net asp.net-mvc jquery jqgrid

2
推荐指数
1
解决办法
5296
查看次数

实现依赖的jqGrid

我已经创建了一个jqGrid,并且我有一个超链接的列,在点击时,获取数据并在父Grid下面创建一个新的jqGrid.

我的问题是,当我点击父网格的任何链接时,子网格已成功创建.但之后如果我点击任何其他链接,子网格显示相同的数据.

问题是网格没有使用新数据刷新.

我也试过jQuery('grid1').trigger('reloadGrid') 但这也没有改变任何东西.

编辑 *下面是在父网格中调用onClick元素的代码:*

var dynaData2   =   getDataForWelfareStatusDetails(memberId);
           jQuery('#grid1').jqGrid({
            datatype: 'local',
            data: dynaData2,
            colNames:['Effective Date ','Welfare Status ', 'State', 'IV-A/IV-E Case ID', 'Receipt No.','Case Type'],
            colMandReq:['-1','-1','-1','-1'],
            colModel: [
                   { name: 'effectiveDate',index:'effectiveDate', align:"center", editable:false,readonly:true,hidden:false, sortable:false, search: false},
                   { name: 'welfareStatus', index:'welfareStatus', align:"center", editable:false,readonly:true,hidden:false, sortable:false, search: false},
                   { name: 'stateCode', index:'stateCode', align:"center", editable:false,readonly:true,hidden:false, sortable:false, search: false},
                   { name: 'refCaseId', index:'refCaseId', align:"center", editable:false,readonly:true,hidden:false, sortable:false, search: false,formatter: returnCaseLink},
                   { name: 'receiptNum', index:'receiptNum', align:"center", editable:false,readonly:true,hidden:false, sortable:false, search: false},
                   { …
Run Code Online (Sandbox Code Playgroud)

javascript jquery jqgrid

1
推荐指数
1
解决办法
1349
查看次数