Nov 16, 2011, 8:04 AM
[CLOSED] Errors regarding TreePanel
Dear Support Members,
I m facing following problems using treepanel
1. on remote nodemove i update DB which is succeeded as required but on client side in case of point="below" view node removed but not moved to new location.
2. on appending a new node how can i myself set id of that node by default it is auto generated.
3. how can i insert extra params to remoteinsert,remoteRemove etc
4. on 'RemoteActionSuccess' listner, e.message does not work rather it works with RemoteActionRefusal.
this is my view
this is my Controller action 'RemoteMove'
I m facing following problems using treepanel
1. on remote nodemove i update DB which is succeeded as required but on client side in case of point="below" view node removed but not moved to new location.
2. on appending a new node how can i myself set id of that node by default it is auto generated.
3. how can i insert extra params to remoteinsert,remoteRemove etc
4. on 'RemoteActionSuccess' listner, e.message does not work rather it works with RemoteActionRefusal.
this is my view
<ext:Menu ID="TreeContextMenu" runat="server" EnableScrolling="false">
<Items>
<ext:MenuTextItem ID="NodeName" runat="server" Cls="bold-text" />
<ext:MenuSeparator />
<ext:MenuItem ID="MenuItem4" runat="server" Text="Insert child" Icon="ArrowRight">
<Listeners>
<Click Handler="#{TreePanel1}.appendChild(#{TreePanel1}.m enuNode, 'New', true);" />
</Listeners>
</ext:MenuItem>
<ext:MenuItem ID="MenuItem1" runat="server" Text="Rename" Icon="Pencil">
<Listeners>
<Click Handler="#{TreePanel1}.startEdit(#{TreePanel1}.men uNode, 10);" />
</Listeners>
</ext:MenuItem>
<ext:MenuItem ID="MenuItem2" runat="server" Text="Remove" Icon="Delete">
<Listeners>
<Click Handler="#{TreePanel1}.removeNode(#{TreePanel1}.me nuNode);" />
</Listeners>
</ext:MenuItem>
</Items>
<Listeners>
<Show Handler="#{NodeName}.el.update(this.nodeName);" />
</Listeners>
</ext:Menu>
<script type="text/javascript" src="../../Scripts/AppScripts/Location.js"></script>
<script type="text/javascript">
var isAdmin='<%=HelpDeskWebApp.Models.User.IsLoggedinU serAdministrator()?"true":"false"%>';
$(document).ready(function() {
Location.setIsAdmin(isAdmin);
});
function showMenu(node, e) {
if(Location.getIsAdmin()=='true')
{
var menu = <%=this.TreeContextMenu.ClientID.ToString()%>;
if (node.browserEvent) {
this.menuNode = this.getRootNode();
menu.nodeName = "";
this.getSelectionModel().clearSelections();
e = node;
}
else {
this.menuNode = node;
menu.nodeName = node.text;
node.select();
}
menu.showAt([e.getXY()[0], e.getXY()[1] + 18]);
e.stopEvent();
}
}
</script>
<ext:Panel ID="PanelContent" runat="server" Layout="Fit" Region="Center">
<Items>
<ext:TreePanel ID="TreePanel1" runat="server" UseArrows="true" AutoScroll="true"
Animate="true" EnableDD="false" Mode="Remote" RootVisible="true" AllowLeafDrop="true"
ContainerScroll="true" Title="Tree" Border="false" RemoteJson="true" RemoteInsertUrl="/Locations/RemoteInsert"
RemoteRemoveUrl="/Locations/RemoteRemove" RemoteRenameUrl="/Locations/RemoteRename"
RemoteMoveUrl="/Locations/RemoteMove" RemoteAppendUrl="/Locations/RemoteInsert"
AutoHeight="true">
<Loader>
<ext:TreeLoader DataUrl="/Locations/getNodes">
</ext:TreeLoader>
</Loader>
<Editors>
<ext:TreeEditor runat="server" Disabled="true">
</ext:TreeEditor>
</Editors>
<SelectionSubmitConfig Encode="true" />
<Root>
<ext:AsyncTreeNode NodeID="1" Text="Location" />
</Root>
<Listeners>
<ContextMenu Fn="showMenu" StopEvent="true" />
<RemoteActionRefusal Handler="Ext.Msg.alert('Error', e.message);" />
<RemoteActionSuccess Handler="Ext.net.Notification.show({
title:'Success',
html:e.message
});" />
</Listeners>
</ext:TreePanel>
</Items>
</ext:Panel>
this is my Controller action 'RemoteMove'
public JsonResult RemoteMove(string id, string targetId, string point)
{
int loc_Id = Convert.ToInt32(id);
int loc_targerId = Convert.ToInt32(targetId);
JsonResult result = new JsonResult();
result.JsonRequestBehavior = JsonRequestBehavior.AllowGet;
int? userId = HelpDeskWebApp.Models.User.getLoggedinUserId();
if (userId != null)
{
if (HelpDeskWebApp.Models.User.IsLoggedinUserAdminist rator())
{
if (point == "append")
{
Location location = db.Locations.First<Location>(l => l.Id == loc_Id);
location.IRoot = Convert.ToInt32(targetId);
}
else if (point == "below")
{
Location location = db.Locations.First<Location>(l => l.Id == loc_Id);
location.IRoot = db.Locations.First<Location>(l => l.Id == loc_targerId).IRoot;
}
db.SaveChanges();
result.Data = new
{
d = new
{
success = true,
message = "Operation Succeeded"
}
};
}
else
{
result.Data = new
{
d = new
{
success = false,
message = "You do not have right to Add New Location"
}
};
}
}
else
{
result.Data = new
{
d = new
{
success = false,
message = "Failure! Session Timed Out"
}
};
}
return result;
}
Last edited by Daniil; Nov 16, 2011 at 8:31 AM.
Reason: Please use [CODE] tags, [CLOSED]