直接上代碼:
/// <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 歡迎大家逛逛,嘿嘿!
如有需要幫助,請聯繫MSN:[email protected](上班時在線) QQ:331773812
歡迎大家共同交流!