This is a migrated thread and some comments may be shown as answers.

GridMaskedColumn

2 Answers 162 Views
Grid
This is a migrated thread and some comments may be shown as answers.
David
Top achievements
Rank 1
David asked on 03 Jan 2013, 10:33 PM
I have a RadGrid with two columns. One of them is a GridMaskedColumn, but I want it to let the user write letters in uppercase and spaces. Actually, my mask is "LLLLLLLLLLLLLLLLLLL", but this does not allow spaces in the input.

Is there any way to create this? I have done a custom RadMaskedTextBox, but that approach doesn't work in the Grid.
Code:

    <telerik:RadMaskedTextBox ID="RadMaskedTextBox8" runat="server" style="text-transform:uppercase;" Mask="aaaaaaaaaaaaaaaaaaaaaaa" >        
<
ClientEvents  OnKeyPress="keyPressMask"/>    
      </
telerik:RadMaskedTextBox><br>

        function keyPressMask(sender, args){           
if (!(args.get_keyCharacter() == "A" || args.get_keyCharacter() == "B" || args.get_keyCharacter() == "C" || args.get_keyCharacter() == "D" ||           
args.get_keyCharacter() ==
"E" || args.get_keyCharacter() == "F" || args.get_keyCharacter() == "G" || args.get_keyCharacter() == "H" ||           
args.get_keyCharacter() ==
"I" || args.get_keyCharacter() == "J" || args.get_keyCharacter() == "K" || args.get_keyCharacter() == "L" ||            
args.get_keyCharacter() ==
"M" || args.get_keyCharacter() == "N" || args.get_keyCharacter() == "O" || args.get_keyCharacter() == "P" ||           
args.get_keyCharacter() ==
"Q" || args.get_keyCharacter() == "R" || args.get_keyCharacter() == "S" || args.get_keyCharacter() == "T" ||            
args.get_keyCharacter() ==
"U" || args.get_keyCharacter() == "V" || args.get_keyCharacter() == "W" || args.get_keyCharacter() == "X" ||            
args.get_keyCharacter() ==
"Y" || args.get_keyCharacter() == "Z" || args.get_keyCharacter() == " " || args.get_keyCharacter() == "a" ||            
args.get_keyCharacter() ==
"b" || args.get_keyCharacter() == "c" || args.get_keyCharacter() == "d" || args.get_keyCharacter() == "e" ||            
args.get_keyCharacter() ==
"f" || args.get_keyCharacter() == "g" || args.get_keyCharacter() == "h" || args.get_keyCharacter() == "i" ||            
args.get_keyCharacter() ==
"j" || args.get_keyCharacter() == "k" || args.get_keyCharacter() == "l" || args.get_keyCharacter() == "m" ||            
args.get_keyCharacter() ==
"n" || args.get_keyCharacter() == "o" || args.get_keyCharacter() == "p" || args.get_keyCharacter() == "q" ||            
args.get_keyCharacter() ==
"r" || args.get_keyCharacter() == "s" || args.get_keyCharacter() == "t" || args.get_keyCharacter() == "u" ||            
args.get_keyCharacter() ==
"v" || args.get_keyCharacter() == "w" || args.get_keyCharacter() == "x" || args.get_keyCharacter() == "y" ||            
args.get_keyCharacter() ==
"z"))
{                
args.set_cancel(
true);                
var eventArgs = new Telerik.Web.UI.InputErrorEventArgs(
                     Telerik.Web.UI.InputErrorReason.ParseError,                    
sender.get_textBoxValue(),                    
args.get_keyCode(),                    
args.get_keyCharacter()                    
);                
sender.raise_error(eventArgs);            
}        
}

I know the above code is brute force, but it works for me. But the key press event on the grid doesnt work properly.

I've tried to set a GridTemplateColumn and adding the RadMaskedTextbox, but the datasource data doesn't show

Is there any way to create a custom mask, let's say, "MMMMMMMMMMMMMMM", where M means uppercase letters AND spaces?

2 Answers, 1 is accepted

Sort by
0
Princy
Top achievements
Rank 2
answered on 04 Jan 2013, 08:06 AM
Hi David,

Try the following code snippet.

CSS:
<style type="text/css">
    .upper
    {
        text-transform: uppercase;
    }
</style>

ASPX:
<telerik:GridMaskedColumn Mask="aaaaaaaaaaaaaaaaaaaaaaa" UniqueName="GridMaskedColumnUniqueName" DataField="Subject">
</telerik:GridMaskedColumn>

C#:
protected void RadGrid1_ItemDataBound(object sender, GridItemEventArgs e)
{
    if (e.Item is GridEditableItem && e.Item.IsInEditMode)
        {
            GridEditableItem item = (GridEditableItem)e.Item;
            RadMaskedTextBox RadMaskedTextBox1 = (RadMaskedTextBox)item["GridMaskedColumnUniqueName"].Controls[0];
            RadMaskedTextBox1.ClientEvents.OnKeyPress = "OnKeyPress";
            RadMaskedTextBox1.CssClass = "upper";
        }
}

JS:
<script type="text/javascript">
    function OnKeyPress(sender, args) {
        var c = args.get_keyCode();
        if ((c == 32) || (65 <= c && c <= 90) || (97 <= c && c <= 122)) {
            args.set_cancel(false);
        }
        else {
            args.set_cancel(true);
            var eventArgs = new Telerik.Web.UI.InputErrorEventArgs(Telerik.Web.UI.InputErrorReason.ParseError, sender.get_textBoxValue(), args.get_keyCode(), args.get_keyCharacter());
            sender.raise_error(eventArgs);
        }
    }
</script>

Hope this helps.

Regards,
Princy.
0
David
Top achievements
Rank 1
answered on 04 Jan 2013, 07:17 PM
Thank you for your response, it worked perfectly!

Tags
Grid
Asked by
David
Top achievements
Rank 1
Answers by
Princy
Top achievements
Rank 2
David
Top achievements
Rank 1
Share this question
or