I'me tring to use the Combobox with Treeview functionality.
The first time I choose an item from the tree everything goes smoothly. But if I open again the combox to select the tree I get an javascript error: Message: 'null' is null or not an object. Thus the issue happens only if I choose a node and after I try to open again the combobox
I've checked the javascript and the error is in the follwoing code:
function OnClientDropDownOpenedHandler(sender, eventArgs) {
var tree = sender.get_items().getItem(0).findControl("rvt1");
var selectedNode = tree.get_selectedNode();
if (selectedNode) {
selectedNode.scrollIntoView();
}
}
The findControl returns a null and when we call the get_selectedNode() we got the exception.
What may be causing this behaviour?
Here is our code:
<
script
type
=
"text/javascript"
>
function nodeClicking(sender, args) {
var comboBox = $find("<%= combo1.ClientID %>");
var node = args.get_node()
comboBox.set_text(node.get_text());
comboBox.trackChanges();
comboBox.get_items().getItem(0).set_text(node.get_text());
comboBox.get_items().getItem(0).set_value(node.get_value());
comboBox.commitChanges();
comboBox.hideDropDown();
// Call comboBox.attachDropDown if:
// 1) The RadComboBox is inside an AJAX panel.
// 2) The RadTreeView has a server-side event handler for the NodeClick event, i.e. it initiates a postback when clicking on a Node.
// Otherwise the AJAX postback becomes a normal postback regardless of the outer AJAX panel.
//comboBox.attachDropDown();
}
function StopPropagation(e) {
if (!e) {
e = window.event;
}
e.cancelBubble = true;
}
function OnClientDropDownOpenedHandler(sender, eventArgs) {
var tree = sender.get_items().getItem(0).findControl("rvt1");
var selectedNode = tree.get_selectedNode();
if (selectedNode) {
selectedNode.scrollIntoView();
}
}
</
script
>
<
telerik:RadComboBox
ID
=
"combo1"
runat
=
"server"
CausesValidation
=
"false"
EnableEmbeddedSkins
=
"false"
OnClientDropDownOpened
=
"OnClientDropDownOpenedHandler"
EmptyMessage
=
"select please"
MaxHeight
=
"200px"
ShowToggleImage
=
"True"
Width
=
"50%"
AllowCustomText
=
"True"
>
<
ItemTemplate
>
<
div
id
=
"div1"
>
<
telerik:RadTreeView
ID
=
"rvt1"
runat
=
"server"
Width
=
"100%"
Height
=
"250px"
DataSourceID
=
"ds1"
DataFieldID
=
"ID"
DataValueField
=
"ID"
DataFieldParentID
=
"ParentID"
DataTextField
=
"Name"
OnClientNodeClicking
=
"nodeClicking"
>
<
DataBindings
>
<
telerik:RadTreeNodeBinding
Expanded
=
"true"
/>
</
DataBindings
>
</
telerik:RadTreeView
>
</
div
>
</
ItemTemplate
>
<
Items
>
<
telerik:RadComboBoxItem
Text
=
""
/>
</
Items
>
</
telerik:RadComboBox
>
<
asp:ObjectDataSource
ID
=
"ds2"
runat
=
"server"
EnablePaging
=
"True"
OnSelecting
=
"dds2_Selecting"
SelectMethod
=
"GetList"
TypeName
=
"BLL"
>
<
SelectParameters
>
<
asp:Parameter
Name
=
"p1"
Type
=
"Int32"
/>
<
asp:Parameter
Name
=
"p2"
Type
=
"Int32"
/>
<
asp:Parameter
Name
=
"p3"
Type
=
"Boolean"
DefaultValue
=
"True"
/>
</
SelectParameters
>
</
asp:ObjectDataSource
>
<
httpRuntime
useFullyQualifiedRedirectUrl
=
"true"
maxRequestLength
=
102400
"
requestLengthDiskThreshold
=
"8192"
executionTimeout
=
"3600"
/>
1 | Product1 | 03.11.2009 |
2 | Product1 | 04.11.2009 |
1 | Product2 | 04.11.2009 |
3 | Product1 | 05.11.2009 |
1 | Product2 | 05.11.2009 |
1 | Product3 | 05.11.2009 |
3 | Product1 | 06.11.2009 |