Hi, Is complex provide an sample to reproduce.
My code to insert:
//Adicionar tipo unidade
protected void RemoteAppend(object sender, RemoteAppendEventArgs e)
{
try
{
int unidadePaiID = int.Parse(e.ParentNodeID);
using (ServicoECMClient proxy = new ServicoECMClient())
{
unidade unidadePai = proxy.ObterUnidadePorID(unidadePaiID);
//Verifica se a unidade é final. Unidades finais não podem adicionar novas unidades.
if (unidadePai.tipounidade.unidade_final)
{
Aplicacao.Mensagem(MessageBox.Icon.WARNING, "Atenção", "Não é possível adicionar unidades para uma unidade final!");
e.Accept = false;
return;
}
int numeroUnidades = unidadePai.unidade1.Count();
int maximoFilhos = unidadePai.unidade1.Select(u => u.tipounidade.maximo_filhos).FirstOrDefault();
// É possível criar novas unidades
// se não excedeu o número máximo de unidades irmas.
if (numeroUnidades >= maximoFilhos)
{
Aplicacao.Mensagem(MessageBox.Icon.WARNING, "Atenção", string.Format("O máximo de unidade(s) permitida(s) são {0}!", maximoFilhos));
e.Accept = false;
return;
}
unidade novaUnidade = new unidade();
novaUnidade.nome = e.Text;
novaUnidade.data_criacao = DateTime.Now;
novaUnidade.id_unidade_pai = unidadePaiID;
novaUnidade.id_tipounidade = unidadePai.unidade1.Select(u => u.id_tipounidade).FirstOrDefault();
if (proxy.InserirUnidade(novaUnidade, this.Chave) > 0)
{
e.Text = string.Concat(unidadePai.tipounidade.nome, ":", e.Text);
e.Accept = true;
}
else
{
e.Accept = false;
}
}
}
catch (FaultException<DetalhesErro> ex)
{
e.Accept = false;
Aplicacao.Mensagem(MessageBox.Icon.ERROR, "Erro", ex.Detail.mensagemCurta);
}
catch (Exception)
{
e.Accept = false;
Aplicacao.Mensagem(MessageBox.Icon.ERROR, "Erro", "Erro ao salvar a unidade!");
}
}
My html
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ArquivoFisico.aspx.cs" Inherits="Stoque.ECM.Web.Cliente.Forms.ArquivoFisico" %>
<%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title></title>
<script type="text/javascript">
function showMenu(node, e) {
var menu = TreeContextMenu;
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>
</head>
<body>
<form id="FormRepositorio" runat="server">
<ext:ResourceManager ID="ResourceManagerArquivoFisico" runat="server" Theme="Gray" />
<ext:Store ID="StoreRepositorioID" runat="server" AutoLoad="true" >
<Reader>
<ext:JsonReader IDProperty="id" >
<Fields>
<ext:RecordField Name="id" />
<ext:RecordField Name="nome" />
</Fields>
</ext:JsonReader>
</Reader>
</ext:Store>
<%-- Menu de contexto do treeview--%>
<ext:Menu ID="TreeContextMenu" runat="server" EnableScrolling="false">
<Items>
<ext:MenuTextItem ID="NodeName" runat="server" Cls="bold-text" />
<ext:MenuSeparator />
<ext:MenuItem ID="MenuItemAdicionarMN" runat="server" Text="Adicionar Unidade" Icon="Add">
<Listeners>
<Click Handler="#{TreePanelUnidade}.appendChild(#{TreePanelUnidade}.menuNode, '');" />
</Listeners>
</ext:MenuItem>
<ext:MenuItem ID="MenuItemRenomear" runat="server" Text="Renomear" Icon="Pencil">
<Listeners>
<Click Handler="renomear(#{TreePanelUnidade})" />
</Listeners>
</ext:MenuItem>
<ext:MenuItem ID="MenuItemApagar" runat="server" Text="Apagar" Icon="Delete">
<Listeners>
<Click Handler="Ext.MessageBox.confirm('Confirmação', 'Deseja realmente excluir esta unidade?',
function(btn){
if(btn=='yes')
#{TreePanelUnidade}.removeNode(#{TreePanelUnidade}.menuNode);;
}); "/>
</Listeners>
</ext:MenuItem>
</Items>
<Listeners>
<Show Handler="#{NodeName}.el.update(this.nodeName);" />
</Listeners>
</ext:Menu>
<ext:FormPanel ID="FormPanelTipoUnidade" runat="server" Title="Configuração de Unidade" Width="380" X="10" MinHeight="100" Height="600" Padding="5" Layout="Absolute" >
<Items>
<ext:ComboBox ID="CbxRepositorio"
runat="server"
Width="350"
X="10" Y="25"
FieldLabel="Repositório"
AllowBlank="false"
MsgTarget="Side"
LabelAlign="Top"
DisplayField="nome"
ValueField="id"
LoadingText = "Carregando ..."
TriggerAction="All"
SelectOnFocus="true"
StoreID="StoreRepositorioID"
EmptyText="... Selecione ... ">
<DirectEvents>
<Select OnEvent="CbxRepositorio_Clique">
<EventMask Msg="Aguarde..." ShowMask="true" />
</Select>
</DirectEvents>
<Triggers>
<ext:FieldTrigger Icon="Clear" Qtip="Remover seleção" />
</Triggers>
<Listeners>
<TriggerClick Handler="this.clearValue(); #{TreePanelUnidade}.clearContent();" />
</Listeners>
</ext:ComboBox>
<ext:TreePanel
ID="TreePanelUnidade"
runat="server"
X="10" Y="80"
Title="Unidades de arquivamento"
Width="350"
Height="400"
AutoScroll="true"
ContainerScroll="true"
Mode="Remote"
RootVisible="true"
AllowLeafDrop="true"
OnRemoteRename="RemoteRename"
OnRemoteRemove="RemoteRemove"
OnRemoteAppend="RemoteAppend"
>
<TopBar>
<ext:Toolbar runat="server" >
<Items>
<ext:ImageButton ID="ImageButtonExpandir" runat="server" ImageUrl="../Resources/icons/expandir.png">
<QTipCfg Text="Expandir" />
<DirectEvents>
<Click OnEvent="ImageButtonExpandir_Clique">
<EventMask Msg="Aguarde..." ShowMask="true" />
</Click>
</DirectEvents>
</ext:ImageButton>
<ext:ImageButton ID="ImageButtonRecolher" runat="server" ImageUrl="../Resources/icons/recolher.png">
<QTipCfg Text="Recolher" />
<DirectEvents>
<Click OnEvent="ImageButtonRecolher_Clique">
<EventMask Msg="Aguarde..." ShowMask="true" />
</Click>
</DirectEvents>
</ext:ImageButton>
</Items>
</ext:Toolbar>
</TopBar>
<Editors>
<ext:TreeEditor ID="TreeEditor1" runat="server" CancelOnBlur="true">
<Field>
<ext:TextField ID="TextFieldTipoUniade" runat="server"/>
</Field>
</ext:TreeEditor>
</Editors>
<SelectionSubmitConfig Encode="true" />
<Listeners>
<ContextMenu Fn="showMenu" StopEvent="true" />
</Listeners>
</ext:TreePanel>
</Items>
<Buttons>
<ext:Button ID="BtnArquivar" runat="server" Text="Arquivar">
<Listeners>
<Click Handler="recuperarUnidadeID(#{TreePanelUnidade}, 1); " />
</Listeners>
</ext:Button>
<ext:Button ID="BtnPesquisar" runat="server" Text="Pesquisar" Icon="Find">
<Listeners>
<Click Handler="recuperarUnidadeID(#{TreePanelUnidade}, 2); " />
</Listeners>
</ext:Button>
<ext:Button ID="BtnCancel" runat="server" Icon="Cancel" Text="Limpar">
<Listeners>
<Click Handler=" #{FormPanelTipoUnidade}.getForm().reset(); #{TreePanelUnidade}.clearContent();" />
</Listeners>
</ext:Button>
</Buttons>
</ext:FormPanel>
</form>
</body>
</html>
See if you need more details.
It complex provide a working code.
Thanks!!!