【问题标题】:ASPxClientListBox loses values and the first item can not be selectedASPxClientListBox 丢失值,无法选择第一项
【发布时间】:2012-10-08 05:07:11
【问题描述】:

在服务器控件上,我有一个 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

【问题讨论】:

  • 我建议你每次回调时重新绑定列表框。这是唯一可行的选择。
  • 我从不绑定 ListBox。我只在客户端使用它。我在客户端动态创建和填充它。它没有理由与服务器同步,因为一旦使用它就不再需要它。

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


【解决方案1】:

您提供的第二个链接解决了部分问题。会发生什么……

...加载页面时立即调用此函数。然而, 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'); }";

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

【讨论】:

    猜你喜欢
    • 2021-08-17
    • 2023-03-27
    • 1970-01-01
    • 2011-09-03
    • 2015-02-15
    • 2013-01-13
    • 1970-01-01
    • 2014-01-06
    • 1970-01-01
    相关资源
    最近更新 更多