Jun 05, 2013, 2:41 PM
[CLOSED] how to save records to database after drag and drop in treepanel?
<ext:TreePanel runat="server" ID="menu_tp" RootVisible="true">
<TopBar>
<ext:Toolbar runat="server">
<Items>
<ext:Button runat="server" Text="确认" Icon="Disk">
<DirectEvents>
<Click OnEvent="SaveClick">
<ExtraParams>
<ext:Parameter Name="data" Value="#{menu_store}.getChangedData()" Mode="Raw" Encode="true" />
</ExtraParams>
</Click>
</DirectEvents>
</ext:Button>
</Items>
</ext:Toolbar>
</TopBar>
<Store>
<ext:TreeStore runat="server" ID="menu_store">
<Root>
<ext:Node Text="根菜单" Expanded="True">
<CustomAttributes>
<ext:ConfigItem Name="id" Value="-1" runat="server" />
<ext:ConfigItem Name="name" Value="根菜单" runat="server" />
<ext:ConfigItem Name="pid" Value="-1" runat="server" />
<ext:ConfigItem Name="url" Value="" runat="server" />
</CustomAttributes>
</ext:Node>
</Root>
<Proxy>
<ext:AjaxProxy Url="../handlers/Handler_menu1.ashx">
</ext:AjaxProxy>
</Proxy>
<Model>
<ext:Model runat="server" IDProperty="id">
<Fields>
<ext:ModelField runat="server" Name="id"></ext:ModelField>
<ext:ModelField runat="server" Name="name"></ext:ModelField>
<ext:ModelField runat="server" Name="pid"></ext:ModelField>
<ext:ModelField runat="server" Name="url"></ext:ModelField>
</Fields>
</ext:Model>
</Model>
<Listeners>
<Load Handler="#{menu_tp}.view.refresh();"></Load>
</Listeners>
</ext:TreeStore>
</Store>
<ColumnModel>
<Columns>
<ext:Column runat="server" Text="编号" DataIndex="id"></ext:Column>
<ext:TreeColumn runat="server" Text="名称" DataIndex="name" Flex="1">
<Editor>
<ext:TextField runat="server"></ext:TextField>
</Editor>
</ext:TreeColumn>
<ext:Column runat="server" Text="url" DataIndex="url" Flex="1">
<Editor>
<ext:TextField ID="TextField1" runat="server"></ext:TextField>
</Editor>
</ext:Column>
</Columns>
</ColumnModel>
<Plugins>
<ext:CellEditing runat="server"></ext:CellEditing>
</Plugins>
<View>
<ext:TreeView ID="TreeView1" runat="server">
<Plugins>
<ext:TreeViewDragDrop ID="TreeViewDragDrop1" runat="server" />
</Plugins>
</ext:TreeView>
</View>
</ext:TreePanel>
protected void SaveClick(object sender, DirectEventArgs e)
{
ChangeRecords<ExtDemoEf.menu> menues = new StoreDataHandler(e.ExtraParams["data"]).BatchObjectData<ExtDemoEf.menu>();
foreach (ExtDemoEf.menu created in menues.Created)
{
}
foreach (ExtDemoEf.menu deleted in menues.Deleted)
{
}
foreach (ExtDemoEf.menu updated in menues.Updated)
{
menuService.Update(updated);
}
// Ext.Net.X.Js.AddScript(this.menu_tp.ClientID + ".getStore().reload();");
menu_store.Reload();
}
can drag and drop and drop the leaf node to unleaf node. but how to update the field "pid" to parent's node's id?after drag and drop, how to get current node's parent id in codebehind?
Last edited by Daniil; Jun 11, 2013 at 4:25 AM.
Reason: [CLOSED]