1

在服务器控件上,我有一个在客户端上动态填充的 DevExpress ASPxClientListBox。服务器不需要知道任何关于它的信息,但它是在服务器上初始化的。通常这个服务器控件没有任何问题......但是,如果我将它放在 ASPxCallbackPanel 中,它将在第一个页面加载时工作,但是,在回调之后,如果 ListBox 的客户端选择索引更改事件被触发,则所选项目尽管键或“文本”完好无损,但值会丢失并且“未定义”。

附带说明...回调后无法选择 ListBox 中的第一项...我的意思是第一项在鼠标悬停或鼠标单击时未突出显示。

稍微相关但不是我需要的链接:

http://www.devexpress.com/Support/Center/p/Q312536.aspx

我有另一个链接谈到“无法选择第一项”问题,并说它与在建立控制层次结构之前添加项目有关,因此解决方案是在 ListBox 客户端 Init 事件中添加项目与 page_load 事件相反。我在初始化 ListBox 之后添加项目,所以我不认为这是一个解决方案......而且我现在无论如何都找不到链接......

编辑:我刚刚再次找到其他链接:http: //www.devexpress.com/Support/Center/p/Q367021.aspx

4

1 回答 1

0

您提供的第二个链接解决了部分问题。发生的事情是……

...加载页面时立即调用此函数。但是,ASPxListBox 层次结构还没有准备好。调用getList函数的正确方法是处理ASPxClientListBox事件...

长话短说,如果您在加载时运行类似以下的内容,将无法正确执行...

yourListbox.AddItem("Test1"); 
yourListbox.AddItem("Test2"); 
yourListbox.AddItem("Test3"); 
yourListbox.AddItem("Test4");

...但以下应该工作...

s.Properties.ClientSideEvents.Init = 
@"function(s, e) { yourListbox.AddItem('Test1'); yourListbox.AddItem('Test2'); yourListbox.AddItem('Test3'); yourListbox.AddItem('Test4'); }";

我猜第一个选定项目问题可能是出于相同或相似的原因而发生的。

于 2014-08-26T07:27:54.483 回答