初始化:
SqlString = "select distinct(substring(cast(instore.`Date` as char),1,7)) as dDate from instore;";
dataSet1 = DBHelper.ExecuteDataSet(SqlString, "instore");
foreach (DataRow row in dataSet1.Tables["instore"].Rows)
{
treeView1.Nodes.Add("-3", row["dDate"].ToString().Trim());
}private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{
if (e.Node.Nodes.Count == 0)
{
if (e.Node.Name == "-3")
{
dataSet1.Clear();
SqlString = "select distinct(substring(cast(instore.`Date` as char),1,10)) as dDate from
instore order by instore.`Date` ASC;";
dataSet1 = DBHelper.ExecuteDataSet(SqlString, "instore");
foreach (DataRow row in dataSet1.Tables["instore"].Rows)
{
e.Node.Nodes.Add("-2", row["dDate"].ToString());
}
}
else if (e.Node.Name == "-2")
{
dataSet1.Clear();
SqlString = "select instore.InstoreKey,instore.InstoreID from instore "
+ "where instore.`Date`='" + e.Node.Text + "'"
+ "order by instore.InstoreID ASC;";
dataSet1 = DBHelper.ExecuteDataSet(SqlString, "instore");
foreach (DataRow row in dataSet1.Tables["instore"].Rows)
{
e.Node.Nodes.Add(row["instoreKey"].ToString(), row["InstoreID"].ToString());
} }
else if (e.Node.Name.Length > 0)
{
LoadData(e.Node.Name);
}
}现在遇到的问题是:保存的时候如何动态更新子节点的数据。
还有就是按删除时,我要更新所删除的row["InstoreID"]的节点的样式,比如颜色变红,前面加*等。。
请各位大狭指教可有什么好的方法。我以前的节点就两个。我是这样更新的
TreeNode nn = new TreeNode();
nn.Text = cSupplierName + "-[" + cSupplierID.Trim() + "]";
int ii = nn.Text.IndexOf("[") + 1;
string tmp = nn.Text.Substring(ii, 1);
TreeNode no = new TreeNode();
no.Text = "供應商編號-[" + tmp + "]";
treeView1.Nodes.Add("-3", no.Text);
int cc=0;
foreach (TreeNode nd in treeView1.Nodes)
{
int il = nd.Text.IndexOf("[") + 1;
if (tmp == nd.Text.Substring(il, 1))
{
if (mflag == myFlag.AddFlag)
{ nd.Nodes.Add(cSupplierKey, nn.Text); }
else
{
treeView1.SelectedNode.Text = nn.Text;
}
nd.ExpandAll();
cc++;
if (cc > 1)
{ treeView1.Nodes.Remove(nd); }
}
}
现在有三个了,感觉更麻烦。。还想不出有什么好方法。。请不吝赐教!!
SqlString = "select distinct(substring(cast(instore.`Date` as char),1,7)) as dDate from instore;";
dataSet1 = DBHelper.ExecuteDataSet(SqlString, "instore");
foreach (DataRow row in dataSet1.Tables["instore"].Rows)
{
treeView1.Nodes.Add("-3", row["dDate"].ToString().Trim());
}private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{
if (e.Node.Nodes.Count == 0)
{
if (e.Node.Name == "-3")
{
dataSet1.Clear();
SqlString = "select distinct(substring(cast(instore.`Date` as char),1,10)) as dDate from
instore order by instore.`Date` ASC;";
dataSet1 = DBHelper.ExecuteDataSet(SqlString, "instore");
foreach (DataRow row in dataSet1.Tables["instore"].Rows)
{
e.Node.Nodes.Add("-2", row["dDate"].ToString());
}
}
else if (e.Node.Name == "-2")
{
dataSet1.Clear();
SqlString = "select instore.InstoreKey,instore.InstoreID from instore "
+ "where instore.`Date`='" + e.Node.Text + "'"
+ "order by instore.InstoreID ASC;";
dataSet1 = DBHelper.ExecuteDataSet(SqlString, "instore");
foreach (DataRow row in dataSet1.Tables["instore"].Rows)
{
e.Node.Nodes.Add(row["instoreKey"].ToString(), row["InstoreID"].ToString());
} }
else if (e.Node.Name.Length > 0)
{
LoadData(e.Node.Name);
}
}现在遇到的问题是:保存的时候如何动态更新子节点的数据。
还有就是按删除时,我要更新所删除的row["InstoreID"]的节点的样式,比如颜色变红,前面加*等。。
请各位大狭指教可有什么好的方法。我以前的节点就两个。我是这样更新的
TreeNode nn = new TreeNode();
nn.Text = cSupplierName + "-[" + cSupplierID.Trim() + "]";
int ii = nn.Text.IndexOf("[") + 1;
string tmp = nn.Text.Substring(ii, 1);
TreeNode no = new TreeNode();
no.Text = "供應商編號-[" + tmp + "]";
treeView1.Nodes.Add("-3", no.Text);
int cc=0;
foreach (TreeNode nd in treeView1.Nodes)
{
int il = nd.Text.IndexOf("[") + 1;
if (tmp == nd.Text.Substring(il, 1))
{
if (mflag == myFlag.AddFlag)
{ nd.Nodes.Add(cSupplierKey, nn.Text); }
else
{
treeView1.SelectedNode.Text = nn.Text;
}
nd.ExpandAll();
cc++;
if (cc > 1)
{ treeView1.Nodes.Remove(nd); }
}
}
现在有三个了,感觉更麻烦。。还想不出有什么好方法。。请不吝赐教!!
解决方案 »
- 新人求指教C#开发桌面应用程序
- C#&SQL 多字段 范围查询问题!?
- p2p巨困惑的问题,高手来吧!
- C# 中如何实现遍历注册表的某个子键下的所有子键???求助各位虾哥虾姐了!!!! 在线急等!
- c#aspx.cs中我加入发邮件代码,报错,求大神看看
- 请问如何在程序运行中得到某一窗体中的所有对象并各对象的指定属性赋值?
- DataList控件的问题
- 想做个类似vss源代码管理的软件,但不知道签入和签出的原理是怎么样的?谢谢
- 如何用C#创建以前VC6.0下的属性页(向导)界面?
- 服务器端Socket(tcp)如何知道客户端Socket退出?
- DataSet读取数据时,有出错,请帮忙看看!
- 求一个可以运行的利用SerialPort进行串口通信的简单例子(C#)
更新的时候,你就再执行一次treeview初始加载时候的那个函数就可以了。
完后再你删除时间的时候更改当前节点的样式。