ReadOnly Table/Column in customization won't work


I have a customization for my UD103/UD103A table and in the EpiViewNotification event of the UD103 EpiDataView, I changed the extended properry “ReadOnly” = “True” of each columns but all columns still updatable…

edvUD103.dataView.Table.Columns[“OpenVersion_c”].ExtendedProperties[“ReadOnly”] = true;


Have you tried “Enabled”?

Yep, same problem

Are you sure the grid ins’t appearing updatable? Like you can “try” to update the fields, but saving doesn’t do anything? I believe the the dataview properties are separate from the UltraGrid

I used the Wizard and it made the following code for setting UD40.Character03 as read only.

private void SetExtendedProperties()
		// Begin Wizard Added EpiDataView Initialization
		EpiDataView edvUD40 = ((EpiDataView)(this.oTrans.EpiDataViews["UD40"]));
		// End Wizard Added EpiDataView Initialization

		// Begin Wizard Added Conditional Block
		if (edvUD40.dataView.Table.Columns.Contains("Character03"))
			// Begin Wizard Added ExtendedProperty Settings: edvUD40-Character03
			edvUD40.dataView.Table.Columns["Character03"].ExtendedProperties["ReadOnly"] = true;
			// End Wizard Added ExtendedProperty Settings: edvUD40-Character03
		// End Wizard Added Conditional Block

That yields column Character03 as read only. It might not be obvious on the screenshot, but Char03 is grayedout.


Thank’s Calvin,

it work this way but not the way I did it, stange lolll


Hi Calvin,

I moved the block into the EpiViewNotification and it’s not working!!! I need to have it at this place because sometime, the field have to switch from ReadOnly = True/False depending on another field value.


Yeah something is strange. I thought maybe you were trying to do it dynamically (like when another field has a certain value).

So I did some experimenting, which included commenting out all the wizard added code. But that column is stuck on being ReadOnly now.

I completely removed all the added code but it is still stuck as ReadOnly.

Here’s the Forms code:

UD40 Cusomization: Script Editor
// **************************************************
// Custom code for UD40Form
// Created: 2/5/2021 2:24:34 PM
// **************************************************
using System;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Windows.Forms;
using Ice.BO;
using Ice.UI;
using Ice.Lib;
using Ice.Adapters;
using Ice.Lib.Customization;
using Ice.Lib.ExtendedProps;
using Ice.Lib.Framework;
using Ice.Lib.Searches;
using Ice.UI.FormFunctions;

public class Script
	// ** Wizard Insert Location - Do Not Remove 'Begin/End Wizard Added Module Level Variables' Comments! **
	// Begin Wizard Added Module Level Variables **

	// End Wizard Added Module Level Variables **

	// Add Custom Module Level Variables Here **

	public void InitializeCustomCode()
		// ** Wizard Insert Location - Do not delete 'Begin/End Wizard Added Variable Initialization' lines **
		// Begin Wizard Added Variable Initialization

		// End Wizard Added Variable Initialization

		// Begin Wizard Added Custom Method Calls

		// End Wizard Added Custom Method Calls

	public void DestroyCustomCode()
		// ** Wizard Insert Location - Do not delete 'Begin/End Wizard Added Object Disposal' lines **
		// Begin Wizard Added Object Disposal

		// End Wizard Added Object Disposal

		// Begin Custom Code Disposal

		// End Custom Code Disposal


Try a Row rule with a custom condition.


For the row rule, can we have the following scenario:

  • Based on a UD103 field, the current UD103 row and all the UD103A rows need to be readonly or not