ASP.NET treeview 节点上下移动
2011-03-03 10:49
387 查看
/// <summary>
/// 上移
/// </summary>
protected void btnUp_Click(object sender, EventArgs e)
{
if (treeChapters.SelectedNode != null)
{
TreeNode sourceNode = treeChapters.SelectedNode;
int intIndex = treeChapters.Nodes.IndexOf(treeChapters.SelectedNode);
if (intIndex > 0)
{
treeChapters.Nodes.AddAt(intIndex - 1, sourceNode);
}
else if (intIndex != 0)
{
TreeNode tnParent = treeChapters.SelectedNode.Parent;
int index = tnParent.ChildNodes.IndexOf(treeChapters.SelectedNode);
foreach (TreeNode tnNode in tnParent.ChildNodes)
{
if (treeChapters.SelectedNode.Value == tnNode.Value && index != 0)
{
TreeNode tnTemp = new TreeNode();
tnTemp = tnNode;
tnParent.ChildNodes.Remove(treeChapters.SelectedNode);
tnParent.ChildNodes.AddAt(index - 1, tnTemp);
//设置移动后要选择的节点
tnParent.ChildNodes[index - 1].Select();
//更新要往上移动的章节:ChapterId = treeChapters.SelectedNode.Value 的顺序为:index - 1
UpdateChapterOrderNo(CourseId, Convert.ToInt32(treeChapters.SelectedNode.Value), index - 1);
//更新往下移动的章节:tnParent.ChildNodes[index].value 的顺序为:index
UpdateChapterOrderNo(CourseId, Convert.ToInt32(tnParent.ChildNodes[index].Value), index);
break;
}
}
}
}
}
/// <summary>
/// 下移
/// </summary>
protected void btnDown_Click(object sender, EventArgs e)
{
if (treeChapters.SelectedNode != null)
{
TreeNode sourceNode = treeChapters.SelectedNode;
int intCount = treeChapters.Nodes.Count;
if (treeChapters.Nodes.IndexOf(treeChapters.SelectedNode) < intCount - 1 && treeChapters.Nodes.IndexOf(treeChapters.SelectedNode) >= 0)
{
int intIndex = treeChapters.Nodes.IndexOf(treeChapters.SelectedNode) + 1;
treeChapters.Nodes.AddAt(intIndex, sourceNode);
}
else if (treeChapters.Nodes.IndexOf(treeChapters.SelectedNode) != intCount && treeChapters.Nodes.IndexOf(treeChapters.SelectedNode) < 0)
{
TreeNode tnParent = treeChapters.SelectedNode.Parent;
int nodeCount = tnParent.ChildNodes.Count;
TreeNode tnSelectedNode = new TreeNode();
bool count = false;
int index = tnParent.ChildNodes.IndexOf(treeChapters.SelectedNode);
foreach (TreeNode tnNode in tnParent.ChildNodes)
{
if (treeChapters.SelectedNode.Value == tnNode.Value)
{
count = true;
tnSelectedNode = tnNode;
}
if (treeChapters.SelectedNode.Value != tnNode.Value && count == true)
{
tnParent.ChildNodes.Remove(treeChapters.SelectedNode);
tnParent.ChildNodes.AddAt(index + 1, tnSelectedNode);
//设置移动后要选择的节点
if (index + 1 >= nodeCount)
{
tnParent.ChildNodes[nodeCount - 1].Select();
}
else
{
tnParent.ChildNodes[index + 1].Select();
}
//TODO:更新当前要移动的章节:ChapterId = treeChapters.SelectedNode.Value 的顺序为:index + 1
UpdateChapterOrderNo(CourseId, Convert.ToInt32(treeChapters.SelectedNode.Value), index + 1);
// 更新从下往上移动的章节:tnParent.ChildNodes[index+1].value 的顺序为:index
UpdateChapterOrderNo(CourseId, Convert.ToInt32(tnParent.ChildNodes[index].Value), index );
break;
}
}
}
}
}
/// <summary>
/// 更新章节排序
/// </summary>
/// <param name="courseID">课程ID</param>
/// <param name="chapterId">章节ID</param>
/// <param name="orderNo">顺序</param>
private void UpdateChapterOrderNo(int courseID, int chapterId, int orderNo)
{
oU_Chapter.ChapterId = chapterId;
oU_Chapter.CourseID = courseID;
oU_Chapter.OrderNo = orderNo;
oU_ChapterLogic.UpdateChapterOrderNo(oU_Chapter);
}
另附广告:女朋友的淘宝网店,为她做宣传,希望大家别介意,http://iyseek.taobao.com 欢迎大家逛逛,嘿嘿!
欢迎大家一起交流,如有疑问,请联系zheng331773812@hotmail.com !
/// 上移
/// </summary>
protected void btnUp_Click(object sender, EventArgs e)
{
if (treeChapters.SelectedNode != null)
{
TreeNode sourceNode = treeChapters.SelectedNode;
int intIndex = treeChapters.Nodes.IndexOf(treeChapters.SelectedNode);
if (intIndex > 0)
{
treeChapters.Nodes.AddAt(intIndex - 1, sourceNode);
}
else if (intIndex != 0)
{
TreeNode tnParent = treeChapters.SelectedNode.Parent;
int index = tnParent.ChildNodes.IndexOf(treeChapters.SelectedNode);
foreach (TreeNode tnNode in tnParent.ChildNodes)
{
if (treeChapters.SelectedNode.Value == tnNode.Value && index != 0)
{
TreeNode tnTemp = new TreeNode();
tnTemp = tnNode;
tnParent.ChildNodes.Remove(treeChapters.SelectedNode);
tnParent.ChildNodes.AddAt(index - 1, tnTemp);
//设置移动后要选择的节点
tnParent.ChildNodes[index - 1].Select();
//更新要往上移动的章节:ChapterId = treeChapters.SelectedNode.Value 的顺序为:index - 1
UpdateChapterOrderNo(CourseId, Convert.ToInt32(treeChapters.SelectedNode.Value), index - 1);
//更新往下移动的章节:tnParent.ChildNodes[index].value 的顺序为:index
UpdateChapterOrderNo(CourseId, Convert.ToInt32(tnParent.ChildNodes[index].Value), index);
break;
}
}
}
}
}
/// <summary>
/// 下移
/// </summary>
protected void btnDown_Click(object sender, EventArgs e)
{
if (treeChapters.SelectedNode != null)
{
TreeNode sourceNode = treeChapters.SelectedNode;
int intCount = treeChapters.Nodes.Count;
if (treeChapters.Nodes.IndexOf(treeChapters.SelectedNode) < intCount - 1 && treeChapters.Nodes.IndexOf(treeChapters.SelectedNode) >= 0)
{
int intIndex = treeChapters.Nodes.IndexOf(treeChapters.SelectedNode) + 1;
treeChapters.Nodes.AddAt(intIndex, sourceNode);
}
else if (treeChapters.Nodes.IndexOf(treeChapters.SelectedNode) != intCount && treeChapters.Nodes.IndexOf(treeChapters.SelectedNode) < 0)
{
TreeNode tnParent = treeChapters.SelectedNode.Parent;
int nodeCount = tnParent.ChildNodes.Count;
TreeNode tnSelectedNode = new TreeNode();
bool count = false;
int index = tnParent.ChildNodes.IndexOf(treeChapters.SelectedNode);
foreach (TreeNode tnNode in tnParent.ChildNodes)
{
if (treeChapters.SelectedNode.Value == tnNode.Value)
{
count = true;
tnSelectedNode = tnNode;
}
if (treeChapters.SelectedNode.Value != tnNode.Value && count == true)
{
tnParent.ChildNodes.Remove(treeChapters.SelectedNode);
tnParent.ChildNodes.AddAt(index + 1, tnSelectedNode);
//设置移动后要选择的节点
if (index + 1 >= nodeCount)
{
tnParent.ChildNodes[nodeCount - 1].Select();
}
else
{
tnParent.ChildNodes[index + 1].Select();
}
//TODO:更新当前要移动的章节:ChapterId = treeChapters.SelectedNode.Value 的顺序为:index + 1
UpdateChapterOrderNo(CourseId, Convert.ToInt32(treeChapters.SelectedNode.Value), index + 1);
// 更新从下往上移动的章节:tnParent.ChildNodes[index+1].value 的顺序为:index
UpdateChapterOrderNo(CourseId, Convert.ToInt32(tnParent.ChildNodes[index].Value), index );
break;
}
}
}
}
}
/// <summary>
/// 更新章节排序
/// </summary>
/// <param name="courseID">课程ID</param>
/// <param name="chapterId">章节ID</param>
/// <param name="orderNo">顺序</param>
private void UpdateChapterOrderNo(int courseID, int chapterId, int orderNo)
{
oU_Chapter.ChapterId = chapterId;
oU_Chapter.CourseID = courseID;
oU_Chapter.OrderNo = orderNo;
oU_ChapterLogic.UpdateChapterOrderNo(oU_Chapter);
}
另附广告:女朋友的淘宝网店,为她做宣传,希望大家别介意,http://iyseek.taobao.com 欢迎大家逛逛,嘿嘿!
欢迎大家一起交流,如有疑问,请联系zheng331773812@hotmail.com !
相关文章推荐
- ASP.NET treeview 树控件的节点上下移动
- .net C# Treeview的Node拖动,Node节点上下移动
- .net C# Treeview的Node拖动,Node节点上下移动
- .net C# Treeview的Node拖动,Node节点上下移动
- .net C# Treeview的Node拖动,Node节点上下移动
- .net C# Treeview的Node拖动,Node节点上下移动
- .net C# Treeview的Node拖动,Node节点上下移动
- ASP.NET 2005 C#如何在TreeView中设置节点之间的间距,节点上下间距?
- .net C# Treeview的Node拖动,Node节点上下移动收藏
- asp.net_TreeView点节点中文字实现菜单的收缩与展开
- 使用JavaScript展开/折叠TreeView中所有节点(Expand and Collapse All Nodes of asp.net Treeview on the client with javascript)
- 默认选中TreeView某个节点的方法 --ASP.NET
- 用jQuery实现asp.net 2.0 treeview控件完全无刷新操作实例(AJAX的增、删、改、选择以及展开收缩节点)
- asp.net treeview遍历递归获取当前节点所有子级(含子级的子级)
- asp.net treeview控件无刷新选择和删除节点的ajax方法
- ASP.NET网站,通过上下键控制Gridview行焦点的移动
- vs2005制做左右上下移动的Listbox ( asp.net , C#)
- asp.net中的TreeView中的点击子节点的CheckBox,如果子节点CheckBox都为空,那父节点的CheckBox也为空.
- ASP.NET应用程序中TreeView 控件 即需填充 TreeNode 数据时,节点展开问题