2010-10-01 56 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"}); 
}