我的网格有以下代码(我在与数据源相同的目录中使用 XML 文件)。
var handsetGrid = $("#products").jqGrid({
url: 'catalog.xml',
datatype: "xml",
colNames:["SKU", "Name", "Brand", "Description", "Metadescription"],
colModel:[
{name:"sku", key: true, index:"sku", width:100, xmlmap:"sku", align:"right", sortable:true},
{name:"Name", index:"Name", width:300, sortable:true, xmlmap:">name>en"},
{name:"Brand", index:"Brand", width:100, sortable:true, xmlmap:"brand"},
{name:"description", index:"description", width:400, classes:"desc1", xmlmap:"description1>en", formatter:descFormatter},
{name:"metadescriptionEn", index:"metadescriptionEn", width:400, classes:"desc1", xmlmap:"metadescription>en", formatter:descFormatter}
],
width: 1300,
height:480,
shrinkToFit:false,
rownumbers: true,
scroll: true,
rowNum:22,
ignoreCase: true,
viewrecords: true,
sortname: "Name",
sortorder: "asc",
sortable: true,
loadonce: true,
pager: "#pager",
caption: "Handsets",
xmlReader: {
root: "products",
row: "product",
repeatitems: false,
id: "sku"
},
loadComplete: function(data) {
// test whether we have initial loadind and the "data" has XML type
if (data.nodeType) {
myXMLdata = data; // save original XML data
}
},
subGrid: true,
subGridRowExpanded: function(subgrid_id, row_id) {
var subgrid_table_id;
subgrid_table_id = subgrid_id + "_t";
jQuery("#" + subgrid_id).html("<table id='" + subgrid_table_id + "' class='scroll'></table>");
jQuery("#" + subgrid_table_id).jqGrid( {
datatype:'xmlstring',
datastr: myXMLdata,
colNames: [ 'Id', 'Name', 'Duration', 'Price'],
colModel: [
{name:"ppid",index:"ppid",width:80, xmlmap:">id"},
{name:"ppname",index:"ppname",width:150, xmlmap:">name>en"},
{name:"ppduration",index:"ppduration",width:85, xmlmap:">priceperduration>duration>en", formatter: durationFormatter},
{name:"ppprice",index:"ppprice",width:80, xmlmap:">priceperduration>price", formatter: priceFormatter}
],
gridview: true,
xmlReader: {
root: "products>product:has('sku:contains('"+row_id+"')')>priceplansavailable",
row: "priceplan",
repeatitems: false
}
});
}
});
$("#handsets").jqGrid('navGrid','#pager',{edit:false,add:false,del:false,search:false,refresh:false});
$("#handsets").jqGrid('navButtonAdd',"#pager",{caption:"Search Bar", title:"Toggle Search Toolbar", buttonicon :'ui-icon-pin-s',
onClickButton:function(){
handsetGrid[0].toggleToolbar();
}
});
$("#handsets").jqGrid('navButtonAdd',"#pager",{caption:"Clear", title:"Clear Search", buttonicon :'ui-icon-refresh',
onClickButton:function(){
handsetGrid[0].clearToolbar();
}
});
$("#handsets").jqGrid('filterToolbar', {defaultSearch:'cn'});
我的问题是,当我加载网格时,我希望它已经针对列进行了排序:名称。 我希望使用这三个参数:
点击列后它正常工作,只有第一个排序不起作用(加载页面后)。
最佳答案
如果您使用“xml”或“json”等远程数据类型,服务器 负责提供排序 数据。
如果你不能这样做,你可以触发 loadComplete 里面的 reloadGrid,但是你应该使用 setTimeout JavaScript 方法来允许完成第一个加载过程。
要没有递归,您应该将 "reloadGrid" 放在 loadComplete 的 if (data.nodeType) block 中。
更新: Free jqGrid有选项 forceClientSorting: true,它解决了这个问题。该选项允许在显示第一页之前强制对数据进行排序和过滤(如果设置了可选的 postData.filters)。
关于jquery - jqGrid 在第一次加载时排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5619395/
使用带有Rails插件的vim,您可以创建一个迁移文件,然后一次性打开该文件吗?textmate也可以这样吗? 最佳答案 你可以使用rails.vim然后做类似的事情::Rgeneratemigratonadd_foo_to_bar插件将打开迁移生成的文件,这正是您想要的。我不能代表textmate。 关于ruby-使用VimRails,您可以创建一个新的迁移文件并一次性打开它吗?,我们在StackOverflow上找到一个类似的问题: https://sta
在选择我想要运行操作的频率时,唯一的选项是“每天”、“每小时”和“每10分钟”。谢谢!我想为我的Rails3.1应用程序运行调度程序。 最佳答案 这不是一个优雅的解决方案,但您可以安排它每天运行,并在实际开始工作之前检查日期是否为当月的第一天。 关于ruby-如何每月在Heroku运行一次Scheduler插件?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/8692687/
鉴于我有以下迁移:Sequel.migrationdoupdoalter_table:usersdoadd_column:is_admin,:default=>falseend#SequelrunsaDESCRIBEtablestatement,whenthemodelisloaded.#Atthispoint,itdoesnotknowthatusershaveais_adminflag.#Soitfails.@user=User.find(:email=>"admin@fancy-startup.example")@user.is_admin=true@user.save!ende
我收到这个错误:RuntimeError(自动加载常量Apps时检测到循环依赖当我使用多线程时。下面是我的代码。为什么会这样?我尝试多线程的原因是因为我正在编写一个HTML抓取应用程序。对Nokogiri::HTML(open())的调用是一个同步阻塞调用,需要1秒才能返回,我有100,000多个页面要访问,所以我试图运行多个线程来解决这个问题。有更好的方法吗?classToolsController0)app.website=array.join(',')putsapp.websiteelseapp.website="NONE"endapp.saveapps=Apps.order("
rails中是否有任何规定允许站点的所有AJAXPOST请求在没有authenticity_token的情况下通过?我有一个调用Controller方法的JqueryPOSTajax调用,但我没有在其中放置任何真实性代码,但调用成功。我的ApplicationController确实有'request_forgery_protection'并且我已经改变了config.action_controller.consider_all_requests_local在我的environments/development.rb中为false我还搜索了我的代码以确保我没有重载ajaxSend来发送
我一直致力于让我们的Rails2.3.8应用程序在JRuby下正确运行。一切正常,直到我启用config.threadsafe!以实现JRuby提供的并发性。这导致lib/中的模块和类不再自动加载。使用config.threadsafe!启用:$rubyscript/runner-eproduction'pSim::Sim200Provisioner'/Users/amchale/.rvm/gems/jruby-1.5.1@web-services/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:105:in`co
我们目前正在为ROR3.2开发自定义cms引擎。在这个过程中,我们希望成为我们的rails应用程序中的一等公民的几个类类型起源,这意味着它们应该驻留在应用程序的app文件夹下,它是插件。目前我们有以下类型:数据源数据类型查看我在app文件夹下创建了多个目录来保存这些:应用/数据源应用/数据类型应用/View更多类型将随之而来,我有点担心应用程序文件夹被这么多目录污染。因此,我想将它们移动到一个子目录/模块中,该子目录/模块包含cms定义的所有类型。所有类都应位于MyCms命名空间内,目录布局应如下所示:应用程序/my_cms/data_source应用程序/my_cms/data_ty
我写了一个非常简单的rake任务来尝试找到这个问题的根源。namespace:foodotaskbar::environmentdoputs'RUNNING'endend当在控制台中执行rakefoo:bar时,输出为:RUNNINGRUNNING当我执行任何rake任务时会发生这种情况。有没有人遇到过这样的事情?编辑上面的rake任务就是写在那个.rake文件中的所有内容。这是当前正在使用的Rakefile。requireFile.expand_path('../config/application',__FILE__)OurApp::Application.load_tasks这里
我有一个电子邮件表格。但是我正在制作一个测试电子邮件表单,用户可以在其中添加一个唯一的电子邮件,并让电子邮件测试将其发送到该特定电子邮件。为了简单起见,我决定让测试电子邮件通过ajax执行,并将整个内容粘贴到另一个电子邮件表单中。我不知道如何将变量从我的HAML发送到我的Controllernew.html.haml-form_tagadmin_email_blast_pathdoSubject%br=text_field_tag'subject',:class=>"mass_email_subject"%brBody%br=text_area_tag'message','',:nam
-if!request.path_info.include?'A'%{:id=>'A'}"Text"-else"Text"“文本”写了两次。我怎样才能只写一次并同时检查path_info是否包含“A”? 最佳答案 有两种方法可以做到这一点。使用部分,或使用content_forblock:如果“文本”较长,或者是一个重要的子树,您可以将其提取到一个部分。这会使您的代码变干一点。在给出的示例中,这似乎有点矫枉过正。在这种情况下更好的方法是使用content_forblock,如下所示:-if!request.path_info.inc