问: 当一个编辑器 (比如, ASPxCheckBox) 被绑定到一个使用了“主”属性 ( ASPxCheckBox.Checked 属性)的区域,当新的按钮(有时候是编辑) 被单击时服务器跑出了空引用异常。
答: 发生这样的错误因为编辑的数据项提供了带有空值的属性。简单类型的属性不能使用控制,所以服务器抛出了异常。如果你想绑定编辑器到你的数据库区域,你应该使用 ASPxEdit.Value 属性.
ASPxGridView - How to implement a two-way data-binding with editors located on Edit Form
ASPxGridView - How to use two-way data-binding expressions with the ASPxCheckBox control
问: 为什么不肯能得到服务端上的ASPxListBox控件的被选择项目?
答: 通常, 当 ASPxListBox.ValueType 属性没有被设置为正确的值时会发生该问题。比如,如果 ASPxListBox.ValueField 属性使用一个整型的数据库字段,ASPxListBox.ValueType的值应该有System.Int32 值。如果该类型被设置为一个合适的值,检查ASPxListBox.Items.Count 属性值。返回值0意味着列表框没有项目,因此你应该在控件的初始事件处理程序中绑定它到一个数据源。在极少数情况下,项目及可能有在客户端上不存在的项目(例如,如果你使用带有不同参数的选择命令)在这种情况下,你应该检查列表框中每一个项目来确认控件与客户端上有相同的值。
问: 在某些时候,没有可能去得到ASPxComboBox的一个被选择的项目 (比如.针对SelectedItem.Value属性的空引用异常被抛出 ). 怎样处理这样的问题?
答: 针对ASPxListBox有相似的步骤来检查出了什么问题。你应该检查 ValueField 包含一个正确的值a correct (System.Int32, System.Decimal, 等等)。 而且,你应该检查组合框有一个恰当的项目(如果在请求间隙时一个数据源改变了,被选择的项目可能消失)。
问:当一个多列的ASPxListBox/ASPxComboBox被绑定使用条件状态下已寄回时, 为什么它有空的项目集合? when it is bound using the IsPostBack "if" condition?
答: 由于性能原因,一个多列的控件没有在ViewState 上存储项目。如果你让控件禁用了ViewState(或者至少在集合栏中有一个列被禁用了)。你应该在每一次页面请求期间把它绑定到一个数据源上。
问: 我刚刚创建好一个新的网站,从工具箱中拖出你的控件然后停放到一个页面上。当在浏览器中打开这个网站时,我发现ASPxClientXXX对象没有被定义。
答: 发生这样的问题是因为你把我们的控件停放到了源代码页面上,没有将源代码页面切换到设计页面。我们的控件需要将 HttpHandler Module 注册到 web.config文件中。
请阅读 How to: Manually Register a HttpHandler Module 帮助文章来查看为什么需要注册模块。
问: 当一个浏览器放大级别不等于100%时,一些控件不能正常的被显示。
答: 不等于100%的放大级别可能会针对使用在Javascript上的标准函数而返回不正确的值。比如,一些浏览器返回乘以放大级别的尺寸大小。 但是其他的浏览器不会。在我们针对不支持非100%放大级别的支持中心有一篇建议文章: Support browsers zoom feature.
问: 当数据绑定表达式被用于ClientSideEvents对象时会抛出下面的异常:数据绑定表达式仅被支持在拥有数据绑定事件的对象上。
答: 数据绑定表达式能够使用在拥有数据绑定事件的对象上,由于我们的控件有嵌套的对象,有可能你仅仅只是在根标签上使用了表达式。在 Databinding expressions are only supported on objects that have a DataBinding event 报告中有提供关于这个问题的额外信息。
问: 我使用了你们的控件并将它的服务器端的可见属性设置为false。为什么我不能通过客户端上的设置可见性的方法来操作它的可见性?
答: 如果你设置了服务器端的可见属性为false,不可能在客户端上操作控件。应为它没有在页面上被渲染。使用ClientVisible 属性来代替它。然后,控件就可以在页面上被渲染。但是在客户端上初始状态下它是被隐藏的。所以你可以去通过Javascript来控制控件的可见性。
问: 当执行回传时为什么会自动产生 ASPxListBox.Callback 和 ASPxComboBox.Callback 事件 ?
答: 对于改变ASPxListBox/ASPxComboBox上的项目集合来说,这些事件是必须的。 一个控件经常使用最新的集合(比如,从通过回调来填充的最新的项目集合中选择一个项目)。但是由于不可能从ViewState中检索项目(因为在回调期间ViewState没有被更新:回调的概念),这些项目将不会残留。为了你的便利,这些控件会检查请求类型。如果一个用户点击了回传按钮(运行一次回传操作), ASPxListBox/ASPxComboBox 通过产生一个带有先前被记忆的参数的响应事件来恢复他们先前的项目集合。当项目集合被恢复后,控件将会正确的回传数据。
尽管如此,当控件是空的,被选择的项目可能会丢失。当一个非列表框或者组合框回调被执行时这是有可能发生的(比如,当用户点击ASPxGridView的更新按钮时)。在这种情况下,用户需要用实际的使用初始事件句柄的项目来填充控件。控件不会总产生事件因为这种方式使代码运行更快:它经常被要求得到一个所选择的文本和值的属性值。
欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果
转载请注明:文章转载自:DevExpress控件中文网 [https://www.devexpresscn.com/]
本文地址:https://www.devexpresscn.com/post/304.html