TECHTOGOU

javascript - 将商店加载到 ExtJS 4 中的组合框时如何发送额外参数?

coder 2024-05-16 原文

在 ExtJS 4 中为组合框使用商店时如何发送额外参数?

我知道我可以在代理设置中使用“extraParams”,但这会影响使用同一商店的所有元素。

也就是说,如果我有一个网格,它正在使用一个名为“用户”的商店,它将列出系统中的所有用户。同时,我有一个组合框,它也使用商店“用户”,但这次我想列出所有具有“status=2”的用户,因此我想发送参数“&status=2”对后端的 Ajax 调用。

如果我使用类似的东西:

store.getProxy().extraParams = {
  status: 2
};

它会工作,但网格将同时更新为也使用“&status=2”。我只希望组合框使用参数。

我想我可以关闭网格上的“自动更新”,然后在组合框的“渲染”事件上设置“extraParams”,然后在组合框隐藏时取消设置,但这将是一个非常丑陋的解决方案。

我也可以将商店复制到“Users2”并将其用于组合框,但这也是一个丑陋的解决方案。

正确的做法是什么?对于大多数人来说,这一定是一件很平常的事情。

更新 1:

我知道我可以使用类似的东西:

store.load({
  params:{
    'foo1': bar1,
    'foo2': bar2
  } 
});

但是我如何在 ExtJS 4 MVC 中使用它呢?我只是在表单对象中指定“store: Users”。我如何将这些额外参数发送到 .load() 函数?

我尝试了以下方法:

{
xtype: 'combobox',
fieldLabel: 'Server',
name: 'server',

//store: 'ServersIP',
store: new Cloud.store.ServersIP(),

/*
listeners: {
    beforeload: function(store, options) {
        console.log(store);
    }
},
*/

valueField: 'id',
displayField: 'name_id',
emptyText: 'Select a Server...',
editable: false
},

但是,它给出错误“Uncaught TypeError: Cannot read property 'ServersIP' of undefined”

但是名字是正确的:

Ext.define('Cloud.store.ServersIP', {

extend: 'Ext.data.Store',
model: 'Cloud.model.Server', 

另外,我应该把监听器放在哪里?我假设我在我的例子中也没有得到正确的那个?

更新 2:

我现在对解决方案有了更进一步的了解:

store: Ext.create('Cloud.store.ServersIP', {
proxy: {
    extraParams: {
        param1: 'value1',
        param2: 'value2'
    }
},                          
}),

以上内容无效。如果我在 Ext.Create 的参数中只有一个“一级”变量,它就可以工作。出于某种原因,当我传入代理 => extraParams => param1 时它不喜欢它。

这个有效:

store: Ext.create('Cloud.store.ServersIP', {
aaa: 'bbb'
}),

当然,我的 extraParams 不存在。有人知道如何解决这最后一部分吗?

最佳答案

我刚刚解决了这个问题。 combobox queryMode:remote 带有额外的参数。

只需在 initComponent 内的 "VIEW" 中实例化商店并覆盖代理

//instantiate the store

var store = Ext.create('Cloud.store.ServersIP', {
    storeId: 'YourStoreId'
});
store.proxy.extraParams = { param1: 'value1', param2: 'value2' };

在 xtype:combobox 中

//set combobox store

{
    xtype: 'combobox',
    queryMode:'remote',
    store : Ext.data.StoreManager.lookup('YourStoreId'),
    ...
    ...
}

希望您理解我提出的解决方案。

关于javascript - 将商店加载到 ExtJS 4 中的组合框时如何发送额外参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17763154/

有关javascript - 将商店加载到 ExtJS 4 中的组合框时如何发送额外参数?的更多相关文章

  1. c# - 覆盖方法中的默认参数值 - 2

    在下面的代码中,对Method2的调用接收值为False的Value参数,即使基类根本没有为该参数声明默认值,而派生类将True声明为默认值。可以说(正如此处类似示例所做的那样:C#optionalparametersonoverriddenmethods)编译器首先使用基类的方法声明(这是真的,因为可以通过在调用Method1前加上前缀来更改此行为this.),但在这种情况下,基根本不声明默认值。对此有合理的解释吗?usingSystem;classBase{publicvirtualboolMethod1(boolValue){returntrue;}publicvirtualbo

  2. c# - 使用 NUnit 测试 Windows 8 商店应用程序 - 2

    我目前正在为一个类(class)开发Windows应用商店应用程序(Windows8),但我在运行NUnit测试时遇到了问题。我的解决方案/项目设置如下所示:TheMetroApp.slnSQLite-net.csproj-类库(Windows应用商店应用程序)。文件是从NuGet中提取的。DataModel.csproj-类库(Windows应用商店应用程序)UnitTests.csproj-单元测试库(Windows商店应用程序)。NUnit框架是从NuGet中提取的。TheMetroApp.csproj-从WindowsSDK示例之一提取的项目文件。杂项。依赖项和实用程序Wind

  3. c# - 带动态参数的动态 lambda 表达式 - 2

    给定这个类publicclassFoo{publicstringName{get;set;}}这个方法(在其他一些类中)...privateFunc<Foo,string>Compile(stringbody){ParameterExpressionprm=Expression.Parameter(typeof(Foo),"foo");LambdaExpressionexp=DynamicExpressionParser.ParseLambda(new[]{prm},typeof(string),body);return(Func<Foo,string

  4. c#文件上传的分块传输结合访问ServiceStack中的路由参数 - 2

    我正在寻找使用IRequiresRequestStream接口(interface)来启用使用ServiceStack(v3)和分块传输编码的大文件上传(视频文件)。标准文件上传似乎无法处理我们客户上传的一些较大的视频文件,因此我们希望为这些文件启用分块传输编码。我已经成功测试了分块传输编码文件上传,但是还有一些参数需要与文件一起发送。由于IRequiresRequestStream绕过ServiceStack请求对象解析器,请求对象中与Stream一起的任何其他参数显然不会被填充。作为解决方法,我可以看到以下选项:查询字符串参数,可通过this.Request.QueryString

  5. c# - ref 参数有什么不好? - 2

    我遇到了一种情况,我认为只能通过使用ref参数来解决。但是,这意味着当我只需要5%的时间由ref参数提供的功能时,更改方法以始终接受ref参数。这让我觉得“哇,疯了,必须找到另一种方法”。我是不是很傻?ref参数会导致什么样的问题?编辑要求提供更多详细信息,我认为它们与我的要求并不完全相关,但我们开始吧。我想保存一个新实例(它将使用稍后可能使用的ID更新)或检索一个与某些逻辑匹配的现有实例并更新它,保存它然后将新实例的引用更改为指向现有的。代码可能会更清晰:protectedoverridevoidBeforeSave(Logentity){varnewLog=entity;varex

  6. c# - 参数比方法更难访问 - 2

    我正在尝试将列表从一个表单类传递到另一个表单类。这是代码:List<Branch>myArgus=newList<Branch>();privatevoidbtnLogin_Click(objectsender,EventArgse){//GettheselectedbranchnamestringselectedBranch=lbBranches.SelectedItem.ToString();for(inti=0;i<myArgus.Count;i++){if(myArgus[i]._branchName==selectedBranch){//Open

  7. c# - C# 中具有类型参数的泛型类型 - 2

    我不认为这可以在C#中完成,但发布它只是为了确保。这是我的问题。我想在C#中做这样的事情:varx=10;varl=newList<typeof(x)>();或varx=10;vart=typeof(x);varl=newList<t>();但这当然行不通。尽管这应该不是问题,因为类型t在编译时已解析。我知道这可以通过反射来解决,但由于类型在编译时是已知的,因此使用反射就太过分了。 最佳答案 publicstaticList<T>CreateCompatibleList<T>(Tt){

  8. 类的 C# 可选数组参数 - 2

    我知道这可以使用null来完成,所以我有一个解决方法,但我想知道是否有更好的方法让我可以有一个可选的int[]一个类的参数?classPriceLevels{publicint[]priceLevels{get;}privatereadonlyint[]defaultPriceLevels={2,3,3,4,5,6};publicPriceLevels(int[]newPriceLevels=defaultPriceLevels){priceLevels=newPriceLevels;}}这给了我一个错误,说它是一个无效的表达式defaultPriceLevels必须是常量。我该如何解

  9. c# - out 用于多个输出值或返回组合值类型更好吗? - 2

    例如,按照以下行:publicboolIntersect(Rayray,outfloatdistance,outVector3normal){}对比publicIntersectResultIntersect(Rayray){}publicclassIntersectResult{publicboolIntersects{get;set;}publicfloatDistance{get;set;}publicVector3Normal{get;set;}}哪个在清晰度、易用性和最重要的性能方面更好。 最佳答案 我会使用组合类型,我会

  10. c# - 在 C# 中取消参数? - 2

    在阅读stackoverflow后,在检查DateTime格式的情况下,您应该使用DateTime.TryParse。在尝试了一些正则表达式之后,它们似乎变得又长又难看,无法覆盖大量格式。但TryParse需要一个“out”参数,因为我只想进行验证格式检查,所以我不需要实际结果。所以我只剩下一个保存“out”结果的变量,我什么都不做。有没有办法让我不必执行输出参数?所以我摆脱了这个警告,不再让变量四处乱飞。 最佳答案 对于C#7.0(自2016年8月起),您可以使用outvar构造,然后在后续代码中忽略新的var。boolsucce

随机推荐

  1. c# - Doxygen:隐藏私有(private)/ protected 方法......和技巧 - 2

    关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭4年前。Improvethisquestion我正在使用Doxygen为我们的API生成用C#编写的文档。但是,它公开了私有(private)/protected成员。有没有办法隐藏这些?我想出了如何隐藏文件:EXCLUDE=文件名列表然而,我需要更多的粒度,从而使用户免受不必要的API干扰。示例Doxygen文件以及提示/技巧将不胜感激。您使用什么工具从源代码生成API?当我通过C++在C#中使用Doxygen

  2. C# 多索引器 - 2

    是否有可能有类似下面的东西:classC{publicFooFoos[inti]{...}publicBarBars[inti]{...}}如果没有,那么我可以通过哪些方式实现这一目标?我知道我可以创建名为getFoo(inti)和getBar(inti)的函数,但我希望通过属性来实现。 最佳答案 不在C#中,不。但是,您始终可以从属性返回集合,如下所示:publicIList<Foo>Foos{get{return...;}}publicIList<Bar>Bars{get{return...;}}ILis

  3. c# - 如何让 EF Core 数据库首先使用枚举? - 2

    我将EFCore与数据库优先方法结合使用,使用“Scaffold-DbContext”命令生成我的DbContext/实体。我如何指示Scaffold-DbContext某个表中的某个字段应该生成代码以使用Enum而不仅仅是int?这就是您过去在常规EF中的做法:https://www.devu.com/cs-asp/lesson-69-mapping-enum-types-entity-properties-framework-designer/例子此枚举已在代码中定义:publicenumStateEnum{Ok=1,Fail=2}这就是Scaffold-DbContext给我的东

  4. C# 以编程方式更改应用程序语言 UWP 实时 - 2

    在我的应用程序中,每种语言的字符串资源都是单独存储的,并根据语言环境的类型显示。我想更改应用程序设置中的语言。我如何实现在语言选择后立即将其应用到用户界面中? 最佳答案 我们可以使用ApplicationLanguages.PrimaryLanguageOverride在运行时更改语言而无需重新启动应用程序。例如:我有两种语言支持“en”和“fr”,本地化消息将显示在文本block中。使用Windows.Globalization添加;将默认语言从“en”更改为“fr”ApplicationLanguages.PrimaryLang

  5. c# - 如何验证(特定国家/地区)电话号码 - 2

    一个有效的电话号码包含:少于9个字符以“+”开头只有数字。我正在尝试使用正则表达式,但我才刚刚开始使用它们,而且我并不擅长。到目前为止我的代码是:staticvoidMain(string[]args){Console.WriteLine("Enteraphonenumber.");stringtelNo=Console.ReadLine();if(Regex.Match(telNo,@"^(\+[0-9])$").Success)Console.WriteLine("correctlyentered");elseConsole.Writ

  6. c# - NullToVisibilityConverter 如果不为空则使可见 - 2

    想要在ListView中隐藏和显示SelectedItem的属性网格<UserControlxmlns:xctk="http://schemas.xceed.com/wpf/xaml/toolkit"<ListView><!--hereislistview--></ListView><xctk:PropertyGridSelectedObject="{BindingActive}"Visibility="{BindingActive,Converter=NullToVisibilityConvert

  7. c# - CompositeCollection + CollectionContainer : Bind CollectionContainer. 集合到用作 DataTemplates DataType 的 ViewModel 的属性 - 2

    我没有获得正确的绑定(bind)语法来访问DateTemplate中MyViewModel的Cats和Dogs属性>在其资源中定义了一个CompositeCollection。publicclassMyViewModel{publicObservableCollection<Cat>Cats{get;privateset;}publicObservableCollection<Dog>Dogs{get;privateset;}}<DataTemplateDataType={x:Typelocal:MyViewModel}"><DataT

  8. c# - 序列化同一个类中的多个 DateTime 属性,每个属性使用不同的格式 - 2

    我有一个具有两个DateTime属性的类。我需要用不同的格式序列化每个属性。我该怎么做?我试过:JsonConvert.SerializeObject(obj,Formatting.None,newIsoDateTimeConverter{DateTimeFormat="MM.dd.yyyy"});此解决方案对我不起作用,因为它将日期格式应用于所有属性。有没有办法用不同的格式序列化每个DateTime属性?也许有一些属性? 最佳答案 处理这种情况的一种直接方法是将IsoDateTimeConverter子类化,为您需

  9. c# - 是否可以在 C# 中创建没有类的对象? - 2

    在许多语言中,您可以在不创建数据类型的情况下创建对象,并向该对象添加属性。例如在JS或AS中:varmyObject={};myObject.myParameter="helloworld";或者您可以使用C和C++创建结构。可以用C#实现吗? 最佳答案 AnonymousTypes是你要找的。例如-varv=new{Amount=108,Message="Hello"};以上代码将创建一个新的对象,其属性为Amount和Message。 关于c#-是否可

  10. c# - 实现嵌套的通用接口(interface) - 2

    我有以下类/接口(interface)://ModelpublicclassA:IA{}//ModelLogicpublicclassB:IB<A>{}//ModelInterfacepublicinterfaceIA{}//ModelLogicInterfacepublicinterfaceIB<T>whereT:IA{}我尝试使用以下代码创建一个新实例:IB<IA>foo=newB();我收到以下错误:Cannotimplicitlyconverttype'B'to'IB<IA>'.Anexplicit