2010-10-01 49 views
0

我有两个链CascadingDropDowns。两者都正常工作。 问题是,在为DropDwonList提供值的基础Web方法中,我需要读取一个附加参数。此参数是设置下拉列表的默认项目所需的参数。如何将其他参数传递给CascadingDropDown ServiceMethod?

我不知道如何传递该参数或读取它。 我在网上阅读了关于ContextKey属性。但我不知道如何从WebMethod访问它。

我试图通过HttpContext.Current.Session去的会话(希望我可以提取会话一些参数),但它接缝,该会议是为WebPageWebMethod不同。

所以我迷失在这里,有什么想法?

回答

1

您需要三件事才能使ContextKey正常工作。

  1. 设置UseContextKey财产上的CascadingDropDown为true
  2. 更改您的WebMethod的方法签名接受contextKey参数:

public CascadingDropDownNameValue[] GetDropDownContents( string knownCategoryValues, string category, string contextKey) { ... }

注:该参数必须是确切的外壳。

  1. 使用JavaScript设置ContextKey。阿贾克斯CascadingDropDown暴露的getter/setter此属性在DOM:

    document.getElementById('idOfCDDL').set_contextKey('valueyouwant');

HTH。

+0

什么..?没有代码示例? SO必须进行维护。 :) – RPM1984 2010-10-01 12:31:19

+0

谢谢,所以对我有希望!但我没有经验去理解一件事。如何通过JavaScript我可以得到例如数据源来将数据源的值传递给set_contextKey('value_from_datasource_row')。何时何地在网页上运行document.getElemntById方法? – Wodzu 2010-10-01 13:04:00

+0

这取决于你想要设置的上下文关键 - 你的问题说“默认项目”。不知道那是什么,但我猜测它是静态的,这引发了你为什么需要传递它的问题。不过,作为一个起点,您可以将一个“selectedIndexChanged”客户端JavaScript事件处理程序附加到DDL,并在那里设置contextkey。 – RPM1984 2010-10-01 22:42:44

0

在你的cs文件的写:

cascadingdropdown1.contextKey=<parameter you need> 

然后在Web方法使用contextKey

0

传递附加参数 有时动作方法,该方法提供了JSON的组合框可能需要额外的参数。下面是如何将它们传递给你的行动: CopyPassing其他参数的操作方法

function onComboBoxDataBinding(e) { 
    e.data = $.extend({}, e.data, { customParam: "customValue"}); 
}