ASPxClientListBox丢失值,无法选择第一个项目

时间:2012-10-17 20:27:30

标签: asp.net c#-4.0 callback devexpress servercontrols

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

在旁注...回调后,无法选择ListBox中的第一项....我的意思是第一项不会在鼠标悬停或鼠标点击时突出显示。

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

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

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

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

1 个答案:

答案 0 :(得分: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'); }";

我想第一个选择项目问题可能是出于同样或类似原因发生的。