We recently upgraded to version 8.3 and are experiencing problems with the WebMaskEdit control when used in an UltraWebGrid column and saving data with the RawText Mode. Please note that the same problem does not exist when using the control as a standard input control.
The definition we are using for the control is:
<igtxt:WebMaskEdit id="MaskPhoneNumbers" runat="server"
InputMask="(###) ###-####" Font-Bold="True"
>
When initializing the grid, we have:
grdContacts.Columns.FromKey(
"PhoneNumber").Hidden = false;
"PhoneNumber").HeaderText = "Phone Number";
"PhoneNumber").Type = Infragistics.WebUI.UltraWebGrid.ColumnType.Custom;
"PhoneNumber").EditorControlID = MaskPhoneNumbers.ID;
?MaskPhoneNumbers.RealText
"(40) 7-659"
As such, the RawText value being sent to the database is '407659'. Is there anyway to get the true RawText value? We have tried various approaches and the only method that will work is if we save the literals to the database which we do not want to do.
In version 6.3, this control worked as we needed it to.
Any help with this quirky behavior will be greatly appreciated.
Thanks and have a great day!
Hi,
The RealText property, which appears in aspx, represents value which is sent to client in internal format. It is not related to the string used for get/setValue (used by grid). That property was not designed for public access. If editor is stand alone (not grid editor), then public properties Text and Value should be used.
If data, which are used to initialize editor and get value after end edit mode, contain literal characters, then the DataMode should be set to RawTextWithLiterals, or RawTextWithRequiredPromptsAndLiterals, or AllText depending on requirements of application.
Thanks for your reply. Saving the literals to the database is not what we need which I gather is what would happen if using RawTextWithLiterals. Can we get the raw text by replacing the literals when actually inserting into the database? What would happen when retrieving that value back into the grid with the mask?
For example: Our mask is: (###) ###-#### GridValue: (999) 999-9999 Database value: GridValue.Replace("(","").Replace(")","").Replace(" ","").Replace("-","")
I haven't had the opportunity to test this but would like your opinion on whether or not you think it would work.
The WebMaskEdit has property RawText. That can be used to get/set value without literals regardless of the DataMode value. That is probably what you need.
Sorry, but I don't see a property of RawText other than as a value for DataMode. How would it be used?
Thanks!
That property is not serializable, so it can not be accessed within aspx. If should see it and modify within Properties at visual design. But it is really a run-time property. Example to use:
protected void Page_Load(object sender, EventArgs e){ string rawText = this.WebMaskEdit1.RawText;}
I need to do the opposite of what you show here. How do I do this:
this.WebMaskEdit1.RawText = string rawText;
If you need to process full mask by WebMaskEdit, then you should use property of WebMaskEdit DataMode="AllText". There are several values defined by MaskDataMode enum.