I need to highlight a set of required fields in detailview either by changing the color of the Caption or append a colored * to the caption.
I started with the below sample but without any luck, can you providea working sample
Private Sub View_ControlsCreated(ByVal sender As Object, ByVal e As EventArgs)
Dim pInfoArray As PropertyInfo() = Me.View.ObjectTypeInfo.Type.GetProperties
For i As Integer = 0 To pInfoArray.Length - 1
Dim attr As RuleRequiredFieldAttribute = DirectCast(Attribute.GetCustomAttribute(pInfoArray(i), GetType(RuleRequiredFieldAttribute)), RuleRequiredFieldAttribute)
If attr IsNot Nothing Then
DirectCast(DirectCast(View, DetailView).FindItem(pInfoArray(i).Name).Control, DevExpress.ExpressApp.Web.TableEx).BackColor = System.Drawing.Color.Red
Can you please provide me with your sample, because it's difficult to find what's wrong with your code without debugging it?
In any case, I see that you are trying to set the BackColor of the TableEx control. I don't think that this is the best way to do what you want.
It's better to process ASPxPropertyEdititor objects only (FindItem(name) as ASPxPropertyEditor) and then set the color of their Editor object.
Alternatively, you can use the approach I used in the How to highlight the focused editor in DetailView example, to process ASPxWebControl objects only (check out the HighlightFocusedLayoutItemDetailViewController class for more details).
I suggest you implement one of these approaches in your sample and attach it here if it doesn't work. Then I could help you further.
Thanks for your patience.
You can modify your controller as follows:
Let me know if this suites you.[C#]
... Protected Overloads Overrides Sub OnActivated() AddHandler View.ControlsCreated, AddressOf View_ControlsCreated AddHandler CType(CType(View, DetailView).LayoutManager, WebLayoutManager).ItemCreated, AddressOf WebLayoutManager_ItemCreated End Sub Private Sub WebLayoutManager_ItemCreated(ByVal sender As Object, ByVal e As ItemCreatedEventArgs) Dim editor As PropertyEditor = TryCast(e.DetailViewItem, PropertyEditor) If editor IsNot Nothing Then If editor.PropertyName = "Name1" Then Dim captionControl As Literal = DirectCast(DirectCast(e.TemplateContainer.Controls(0).Controls(0).Controls(0).Controls(0).Controls(0), System.Web.UI.Control), System.Web.UI.WebControls.Literal) captionControl.Text = "Some custom text1" TryCast(captionControl.Parent, WebControl).BackColor = Drawing.Color.Red End If End If End Sub ...