i wrote a sample below, click add button, select the root parent node, and type a type name , then click submit, the window will hide, but the treepanel and treestore dose not reload. how to do?
<%@ Page Language="C#" %>
<!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 runat="server">
<title></title>
<script runat="server">
// InfoCateDao infoCateDao = new InfoCateDao();
protected void Page_Load(object sender, EventArgs e)
{
if (!X.IsAjaxRequest)
{
DbClass db = new DbClass();
var nodes = db.NodesList;
Loadinfocates(ts_infocate, nodes);
// tp_infocate.ExpandAll();
Loadinfocates(ts_cates,nodes);
// tp_cates.ExpandAll();
}
}
public class NodeRow
{
public int id { get; set; }
public string cate { get; set; }
public int pid { get; set; }
public string grade { get; set; }
}
public class DbClass
{
public List<NodeRow> NodesList;
public DbClass()
{
NodesList = new List<NodeRow>
{
new NodeRow{id = 1,cate = "cate1",grade = "1",pid = -1}
};
}
public void put(NodeRow nr)
{
this.NodesList.Add(nr);
}
}
protected void ShowAddWindow(object sender, DirectEventArgs e)
{
w_add.Show();
}
private void Loadinfocates(TreeStore ts, List<NodeRow> nodesList)
{
var root = new Node { NodeID = "-1", Text = "根类别", Expanded = true };
root.CustomAttributes.AddRange(new List<ConfigItem>
{
new ConfigItem { Name = "id", Value = "-1" },new ConfigItem { Name = "cate", Value = "根类别" }
});
ts.Root.Add(root);
foreach (var node in nodesList)
{
var n = new Node { Text = node.cate, Leaf = true };
n.CustomAttributes.AddRange(new List<ConfigItem>
{
new ConfigItem {Name = "id", Value = node.id.ToString()},
new ConfigItem {Name = "cate", Value = node.cate},
new ConfigItem {Name = "pid", Value = node.pid.ToString()},
new ConfigItem {Name = "grade", Value =node.grade}
});
root.Children.Add(n);
}
}
protected void AddCate(object sender, DirectEventArgs e)
{
var pid = ddf_pid.Value.ToString();
var cate = tf_cate.Value.ToString();
var grade = tf_grade.Value.ToString();
// var infocate = new QizInfoCate();
// infocate.pid = int.Parse(pid);
// infocate.cate = cate;
// infocate.grade = int.Parse(grade);
// infoCateDao.Add(infocate);
//Node n = ts_infocate.node
DbClass db = new DbClass();
db.put(new NodeRow { pid = -1, cate = cate, grade = "1",id = 2});
var nodes = db.NodesList;
Loadinfocates(ts_infocate,nodes);
w_add.Hide();
}
protected void ReloadData(object sender, NodeLoadEventArgs e)
{
// Loadinfocates(ts_infocate);
// tp_infocate.ExpandAll();
}
private void Loadsubcaes(Node parentNode, int pid)
{
//var cates = infoCateDao.InfoCatesByPid(pid);
// foreach (var qizInfoCate in cates)
// {
// bool leaf = infoCateDao.Isleaf(qizInfoCate.id);
// var n = new Node { Text = qizInfoCate.cate, Leaf = leaf };
// n.CustomAttributes.AddRange(new List<ConfigItem>
// {
// new ConfigItem {Name = "id", Value = qizInfoCate.id.ToString()},
// new ConfigItem {Name = "cate", Value = qizInfoCate.cate},
// new ConfigItem {Name = "pid", Value = qizInfoCate.pid.ToString()},
// new ConfigItem {Name = "grade", Value = qizInfoCate.grade.ToString()}
// });
// parentNode.Children.Add(n);
// Loadsubcaes(n, qizInfoCate.id);
// }
}
</script>
</head>
<body>
<form id="form1" runat="server">
<ext:ResourceManager runat="server" SourceFormatting="True">
</ext:ResourceManager>
<ext:Window runat="server" Hidden="True" ID="w_add" Title="新增类别" Width="310" Layout="HBoxLayout">
<LayoutConfig>
<ext:HBoxLayoutConfig Pack="Center" />
</LayoutConfig>
<Items>
<ext:FormPanel runat="server" Layout="AnchorLayout" Width="300" Padding="4" ID="fp_add">
<Defaults>
<ext:Parameter Name="LabelWidth" Value="60" />
<ext:Parameter Name="Padding" Value="4" />
</Defaults>
<Items>
<ext:DropDownField runat="server" ID="ddf_pid" AnchorHorizontal="100%" Mode="ValueText" TriggerIcon="SimpleArrowDown" Editable="false" FieldLabel="父类别">
<Component>
<ext:TreePanel runat="server" ID="tp_cates" RootVisible="True">
<Store>
<ext:TreeStore runat="server" ID="ts_cates">
<Model>
<ext:Model ID="Model1" runat="server">
<Fields>
<ext:ModelField Name="id">
</ext:ModelField>
<ext:ModelField Name="cate">
</ext:ModelField>
<ext:ModelField Name="pid">
</ext:ModelField>
<ext:ModelField Name="grade">
</ext:ModelField>
</Fields>
</ext:Model>
</Model>
</ext:TreeStore>
</Store>
<ColumnModel>
<Columns>
<ext:TreeColumn runat="server" DataIndex="cate" Text="类别" Flex="1">
</ext:TreeColumn>
</Columns>
</ColumnModel>
<Listeners>
<ItemClick Handler="
this.dropDownField.setValue(record.data.id, record.data.cate, false);
this.dropDownField.collapse();
var grade = record.data.grade;
#{tf_grade}.setValue(grade+1);
">
</ItemClick>
</Listeners>
</ext:TreePanel>
</Component>
</ext:DropDownField>
<ext:TextField ID="tf_cate" runat="server" FieldLabel="类别" AnchorHorizontal="100%"></ext:TextField>
<ext:TextField runat="server" ID="tf_grade" FieldLabel="级别" ReadOnly="True" AnchorHorizontal="100%"></ext:TextField>
</Items>
<Buttons>
<ext:Button runat="server" Text="取消">
<Listeners>
<Click Handler="#{fp_add}.reset();"></Click>
</Listeners>
</ext:Button>
<ext:Button runat="server" Text="确定">
<DirectEvents>
<Click OnEvent="AddCate"></Click>
</DirectEvents>
</ext:Button>
</Buttons>
</ext:FormPanel>
</Items>
</ext:Window>
<ext:Viewport runat="server" Layout="FitLayout">
<Items>
<ext:TreePanel runat="server" ID="tp_infocate" RootVisible="False">
<Store>
<ext:TreeStore runat="server" ID="ts_infocate" OnReadData="ReloadData">
<Model>
<ext:Model ID="Model2" runat="server">
<Fields>
<ext:ModelField Name="id">
</ext:ModelField>
<ext:ModelField Name="cate">
</ext:ModelField>
<ext:ModelField Name="pid">
</ext:ModelField>
<ext:ModelField Name="grade">
</ext:ModelField>
</Fields>
</ext:Model>
</Model>
<Proxy>
<ext:PageProxy></ext:PageProxy>
</Proxy>
</ext:TreeStore>
</Store>
<TopBar>
<ext:Toolbar runat="server">
<Items>
<ext:Button runat="server" Text="新增" Icon="Add">
<DirectEvents>
<Click OnEvent="ShowAddWindow"></Click>
</DirectEvents>
</ext:Button>
<ext:Button runat="server" Text="删除" Icon="Delete">
</ext:Button>
<ext:Button ID="Button1" runat="server" Text="存盘" Icon="Disk">
</ext:Button>
<ext:Button runat="server" Text="展开" Icon="SectionExpanded">
<Listeners>
<Click Handler="#{tp_infocate}.expandAll();">
</Click>
</Listeners>
</ext:Button>
<ext:Button runat="server" Text="收缩" Icon="SectionCollapsed">
<Listeners>
<Click Handler="#{tp_infocate}.collapseAll();">
</Click>
</Listeners>
</ext:Button>
</Items>
</ext:Toolbar>
</TopBar>
<ColumnModel>
<Columns>
<ext:Column runat="server" DataIndex="id" Text="编号">
</ext:Column>
<ext:TreeColumn runat="server" DataIndex="cate" Text="类别" Flex="1">
</ext:TreeColumn>
<ext:Column runat="server" DataIndex="grade" Text="级别">
</ext:Column>
<ext:Column ID="Column1" runat="server" DataIndex="pid" Text="父类别">
</ext:Column>
</Columns>
</ColumnModel>
<Plugins>
<ext:CellEditing ID="CellEditing1" runat="server" />
</Plugins>
<SelectionModel>
<ext:TreeSelectionModel ID="RowSelectionModel1" runat="server" Mode="Multi">
</ext:TreeSelectionModel>
</SelectionModel>
</ext:TreePanel>
</Items>
</ext:Viewport>
</form>
</body>
</html>