全部的
我试图在按下工具栏按钮[顶部寻呼机]时实现自定义警告消息,如“请选择行”。我不想使用警报!!
我遵循了Oleg的一个例子(至少对我来说是JqGrid大师!!)i、 e.Stackoverflow参考-jqGrid警告对话框。Oleg演示参考-http://www.ok-soft-gmbh.com/jqGrid/Warning.htm
如果我使用与Oleg演示中相同的版本,所有这些都可以正常工作。但如果我更改jqGrid版本4.8.0,相同的演示将无法运行:(
我以前-
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/free-jqgrid/4.8.0/js/jquery.jqgrid.src.js"></script>
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/free-jqgrid/4.8.0/css/ui.jqgrid.css" />
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/free-jqgrid/4.8.0/js/i18n/grid.locale-en.js"></script>
而不是
<script type="text/javascript" src="http://www.ok-soft-gmbh.com/jqGrid/jquery.jqGrid-4.4.0/js/jquery.jqGrid.src.js"></script>
<link rel="stylesheet" type="text/css" href="http://www.ok-soft-gmbh.com/jqGrid/jquery.jqGrid-4.4.0/css/ui.jqgrid.css" />
<script type="text/javascript" src="http://www.ok-soft-gmbh.com/jqGrid/jquery.jqGrid-4.4.0/js/i18n/grid.locale-en.js"></script>
知道在后来的版本中模态用法是否改变了吗?
向你问好,Sundar
首先,我建议您使用最新版本的免费jqGrid。它是4.9.2。您可以从GitHub下载或直接从CDN使用(请参见此处)。相应的URL将为
html prettyprint-override"><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/free-jqgrid/4.9.2/css/ui.jqgrid.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/free-jqgrid/4.9.2/js/jquery.jqgrid.min.js"></script>
以及可选的语言文件
<script src="https://cdn.jsdelivr.net/free-jqgrid/4.9.2/js/i18n/grid.locale-de.js"></script>
包括英文语言环境文件网格。语言环境(英语)。js不是必需的,因为它现在包含在免费jqGrid的主代码中(jquery.jqGrid.min.js
或jquery.jqGrid.src.js
)。
在我解释旧演示中的问题之前,我建议您使用简化方法$.jgrid.info_dialog
来创建小对话框。相应的代码可以是
$grid.jqGrid("navButtonAdd", {
caption: "Click me too!",
onClickButton: function () {
$.jgrid.info_dialog.call(this,
"Warning", // dialog title
"Please, select row!", // text inside of dialog
"Close", // text in the button
{ left: 100, top: 100 } // position relative to grid
);
}
});
显示的对话框如下所示
如果要使用区域设置文件中的文本元素,则可以将代码修改为以下内容
$grid.jqGrid("navButtonAdd", {
caption: "Click me too!",
onClickButton: function () {
var $self = $(this),
alertText = $self.jqGrid("getGridRes", "nav.alerttext"),
alertTitle = $self.jqGrid("getGridRes", "nav.alertcap"),
bClose = $self.jqGrid("getGridRes", "edit.bClose");
$.jgrid.info_dialog.call(this,
alertTitle, // dialog title
alertText, // text inside of dialog
bClose, // text in the button
{ left: 100, top: 100 } // position relative to grid
);
}
});
如果要显示完全相同的警报对话框,如果未选择任何行,则显示免费jqGrid,那么代码可能特别简单
$grid.jqGrid("navButtonAdd", {
caption: "Click me!",
onClickButton: function () {
this.modalAlert();
}
});
在这种情况下,您无法自定义文本,但用法非常简单。
如果您想像在旧演示中一样使用createModal
和viewModal
,您应该了解以下内容。免费的jqGrid中当然有许多更改。代码中的主要兼容性问题:应该通过将this
设置为网格的DOM来调用$.jgrid.createModal
。因此必须将旧演示中的$.jgrid.createModal(...)
修改为$.jgrid.createModal.call(this,...)
。旧演示中的下一个问题非常简单。条件$("#" alertIDs.themodal). html() === null
在当前版本的jQuery中是错误的,最好使用$("#" alertIDs.themodal). long===0
。这是旧演示中的下一个主要问题。完整代码可以是例如以下内容
$grid.jqGrid("navButtonAdd", {
caption: "Click me!",
onClickButton: function () {
var $self = $(this),
p = $self.jqGrid("getGridParam"),
gridId = p.id,
alertIDs = {
themodal: "myalertmod_" + gridId,
modalhead: "myalerthd_" + gridId,
modalcontent: "myalertcnt_" + gridId
},
alertSelector = "#" + $.jgrid.jqID(alertIDs.themodal),
alertText = $self.jqGrid("getGridRes", "nav.alerttext"),
alertTitle = $self.jqGrid("getGridRes", "nav.alertcap");
if ($(alertSelector).length === 0) {
$.jgrid.createModal.call(this,
alertIDs,
"<div>" + alertText + "</div>",
{
gbox: p.gBox,
jqModal: true,
drag: true,
resize: true,
caption: alertTitle,
top: 100,
left: 100,
width: 200,
height: "auto",
closeOnEscape: true,
zIndex: null
},
"", "", true);
}
$.jgrid.viewModal(
alertSelector,
{
gbox: p.gBox,
toTop: true
});
}
});
我们发现,再次使用GridUnload和grid load时,工具栏搜索将被完全删除: 此行已删除完成。
jqGrid 是一个用来显示网格数据的jQuery插件,文档比较全面,附带中文版本。 主要特点: -Full control with JavaScript API -Data returned from the server is XML -Simple configuration -Ability to load big datasets (paging) -Resizable columns
问题内容: 用于保存jqgrid状态。它使用列号保存jqgrid列状态。如果在服务器中更改了jqgrid colmodel,这将导致浏览器中的javascript错误。 免费的jqgrid是从今天的git master下载的。调整列大小或移动行后处于状态保存 改为 并在状态下以loadComplete代码还原 与 现在行 导致错误 如何解决此问题,以便在更改列定义时可以使用列状态? 方法定义为 问
html5有数字输入类型,如 在这种情况下,输入时禁用非数字字符。触摸设备中自动显示纯本机数字键盘。 如何强制自由jqgrid字段编辑使用此类型? jgrid列定义为 jqrid是从远程json数据创建的。使用内联和表单编辑和搜索工具栏。这允许输入任何字符。在触摸设备全键盘出现。 如何解决此问题,以便在编辑和工具栏搜索中,此字段显示为属性? 如何指定输入仅为整数或允许小数点?可能是html5验证属
问题内容: 当我使用网格时,它被破坏了:没有寻呼机/没有标题。 在Wiki中,我发现: 与以前的方法的唯一区别是,网格已被破坏,但是表格元素和分页器(如果有)可以再次使用。 我在GridUnload / GridDestroy之间找不到任何区别,还是我有问题? 我使用jqGrid3.8。 问题答案: 为了能够在页面上创建jqGrid,必须在要查看网格的页面位置插入一个空元素。table元素的最简单
问题内容: iv在jqgrid中看到了@Oleg的行总和示例,但我尝试应用它,但它无法正常工作,我有以下网格,我需要为其计算金额值。 请奥列格(Oleg)帮助,我已经尝试了您的示例,但是由于某些原因它没有起作用。 问题答案: 如果我理解的正确,则希望将其放置在页脚getCol和footerData方法中: 该可用于从“量”柱,并且尊重计算所有数字的总和,你可以在底部放置列中的文本“总计:”和在底部