大家好!
基本上,我有一個下拉窗口小部件,在某種程度上我想改變可用的選項,但仍保持同樣的選擇的選擇。
我發現的問題是:
——如果我想刪除小部件創建一個新的,好像物體沒有刪除,選中的價值保持的“指數”。
——dbutils.widgets。下拉收到defaultValue,而不是選擇價值。(有一個函數分配價值?)
——當我和dbutils.widgets改變選項列表中。下拉,我最終觀看(顯示小部件),並獲得(dbutils.widgets.get())不同的值。
我附上一些代碼,其中包含表示問題。
,幫助嗎?
如果不是(“val”當地人()):
dbutils.widgets。下拉(“A”,“4”,(“1”、“2”、“3”、“4”、“5”、“6”、“7”),“文本”)
val = dbutils.widgets.get (“”)
如果(val = =“5”):
dbutils.widgets.remove (“”)
dbutils.widgets。下拉(“A”,“4”,(“1”、“3”、“4”、“5”、“6”、“7”),“文本”)
print (dbutils.widgets.get (“A”))
如果(val = =“3”):
dbutils.widgets.remove (“”)
dbutils.widgets。下拉(“A”,“4”,(“1”、“2”、“3”、“4”、“5”、“6”、“7”),“文本”)
print (dbutils.widgets.get (“A”))
順便說一下,這是代碼:
如果不是(“val”當地人()):
dbutils.widgets。下拉(“A”,“4”,(“1”、“2”、“3”、“4”、“5”、“6”、“7”),“文本”)
val = dbutils.widgets.get (“”)
如果(val = =“5”):
dbutils.widgets.remove (“”)
dbutils.widgets。下拉(“A”,“4”,(“1”、“3”、“4”、“5”、“6”、“7”),“文本”)
print (dbutils.widgets.get (“A”))
如果(val = =“3”):
dbutils.widgets.remove (“”)
dbutils.widgets。下拉(“A”,“4”,(“1”、“2”、“3”、“4”、“5”、“6”、“7”),“文本”)
print (dbutils.widgets.get (“A”))
我知道這是5 +年但我想添加一個答案(或工作),以防其他人正在尋找相同的解決方案。
我所做的基本上是“重置”小部件每當我不得不分配(或力)值。
#細胞# 1 dbutils.widgets。下拉(“環境”,“開發”,Seq(“開發”、“刺激”))細胞# 2 # dbutils.widgets.removeAll() #或者# dbutils.widgets.remove細胞(環境)# # 3 # ENV = <一些邏輯> dbutils.widgets。文本(“環境”,ENV)
上麵似乎欺騙和混亂的誠實但是它適合我的用例。我把第一單元是以防我需要交互式調試筆記本中。畢竟,細胞# 1不會事一旦筆記本插入工作/工作流
說實話,我隻是希望有一個相應的<集>方法用於部件與可用的<得到>方法。
如果有其他人有更好的解決方案在2023年,我洗耳恭聽!