Is there a way to set the max length for the edit box when editing an item in the tree view? I can see that when editing the name of a node in the tree view, the editable area is an input box. With input boxes, you should be able to set a maximum length. I just need a way to set the maximum length for the editable area so when a user goes to rename a node in the tree view, they can't give it a really long name.
Kai Thao
Kai Thao
8 Answers, 1 is accepted
0
Accepted

Shinu
Top achievements
Rank 2
answered on 29 Aug 2009, 05:57 AM
Hi Kai Thao,
Try the following approach for setting the MaxLength when editing the tree node.
ASPX:
JavaScript:
-Shinu.
Try the following approach for setting the MaxLength when editing the tree node.
ASPX:
<telerik:RadTreeView ID="RadTreeView1" OnClientNodeEditStart="OnClientNodeEditStartHandler" runat="server" AllowNodeEditing="True"> |
<Nodes> |
. . . |
</Nodes> |
</telerik:RadTreeNode> |
JavaScript:
<script type="text/javascript"> |
function OnClientNodeEditStartHandler(sender, eventArgs) |
{ |
var node = eventArgs.get_node(); |
var textInput = node.get_inputElement(); |
textInput.width = "150"; |
textInput.maxLength = 4; // Set the MaxLength |
} |
</script> |
-Shinu.
0

Kai
Top achievements
Rank 1
answered on 31 Aug 2009, 12:42 PM
Thanks. That worked perfect.
Kai Thao
Kai Thao
0

iairgood
Top achievements
Rank 1
answered on 01 Apr 2010, 06:10 PM
Hello,
The approach to set the maximum length on the edit input box worked, but it appears that only 50 characters of the edited text are actually saving. Is there a way to increase the maximum length of the edit input to something greater than 50, say 255?
Thanks,
Ian
The approach to set the maximum length on the edit input box worked, but it appears that only 50 characters of the edited text are actually saving. Is there a way to increase the maximum length of the edit input to something greater than 50, say 255?
Thanks,
Ian
0

Marbry
Top achievements
Rank 1
answered on 21 Sep 2011, 11:20 PM
I can't find any way to set that on the server side other than perhaps a custom attribute. Is there something I can set on the node that will be carried over to use for the MaxLength on the generated textbox?
I would think there would be something like,
AllowEdit = true;
MaxEditLength = 30;
I would think there would be something like,
AllowEdit = true;
MaxEditLength = 30;
0

Marbry
Top achievements
Rank 1
answered on 22 Sep 2011, 04:52 PM
I believe I have this working now.
I query the schema info when the page loads from a stored procedure.
Retrieve that from function that calls the stored proc and store it in a list.
And set an attribute on the nodes as they're created.
Then I get that attribute value on the client side when the node is edited and set the MaxLength for the input element.
I query the schema info when the page loads from a stored procedure.
SELECT
TABLE_NAME,
COLUMN_NAME,
DATA_TYPE,
CHARACTER_MAXIMUM_LENGTH
FROM
[INFORMATION_SCHEMA].[COLUMNS]
Retrieve that from function that calls the stored proc and store it in a list.
private
List<usp_GetSchemaResult> SchemaResults = GetSchema();
And set an attribute on the nodes as they're created.
RadNode1.Attributes.Add(
"MaxLength"
, (from r
in
SchemaResults where r.COLUMN_NAME ==
"Field1Name"
select r.CHARACTER_MAXIMUM_LENGTH.ToString()).First<
string
>());
Then I get that attribute value on the client side when the node is edited and set the MaxLength for the input element.
node.startEdit();
// set max length
var
max = node._attributes.getAttribute(
"MaxLength"
);
if
(max !=
null
&& max !=
""
)
{
var
editRef = node.get_inputElement();
editRef.maxLength = max;
}
0

jc mag
Top achievements
Rank 1
answered on 07 Mar 2012, 04:19 PM
I'm using this code:
but the width of the textbox in edit mode doesn't work...
Does it work for you?
function OnClientNodeEditStartHandler(sender, eventArgs)
{
var node = eventArgs.get_node();
var textInput = node.get_inputElement();
textInput.width = "150";
.....
}
Does it work for you?
0

Marbry
Top achievements
Rank 1
answered on 07 Mar 2012, 04:46 PM
I think that needs to textInput.style.width.
I'm not doing that directly on the default box, but I do have a templated text box that I expand when it's selected for editing. Here's the client edit block handler for that.
I'm not doing that directly on the default box, but I do have a templated text box that I expand when it's selected for editing. Here's the client edit block handler for that.
var
element = node.get_element();
if
(element !=
null
)
{
var
textBox = $telerik.findElement(element,
"Property_TB"
+ newIDVal);
if
(textBox !=
null
)
{
textBox.disabled =
false
;
textBox.setAttribute(
"rows"
,
"8"
);
textBox.style.width =
"400px"
;
eventArgs.set_cancel(
true
);
sender._hideContextMenus();
return
true
;
}
}
0

jc mag
Top achievements
Rank 1
answered on 07 Mar 2012, 05:49 PM
it works, thanks! ;)