using BLL;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace FineUIPro.Web.CQMS.Foreign
{
    public partial class ShoBreakdownProject : PageBase
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                string cnProfessionalId= Request.Params["CNProfessionalId"];
                InitTreeMenu(cnProfessionalId);
            }
        }
        #region  加载树
        /// 
        /// 加载树
        /// 
        private void InitTreeMenu(string cnProfessionalId)
        {
            this.tvControlItem.Nodes.Clear();
            this.tvControlItem.ShowBorder = false;
            this.tvControlItem.ShowHeader = false;
            this.tvControlItem.EnableIcons = true;
            this.tvControlItem.AutoScroll = true;
            this.tvControlItem.EnableSingleClickExpand = true;
            var unitWorks = from x in Funs.DB.WBS_UnitWork where x.ProjectId == this.CurrUser.LoginProjectId orderby x.UnitWorkCode select x;
            foreach (var item in unitWorks)
            {
                TreeNode rootNode1 = new TreeNode();
                rootNode1.Text = item.UnitWorkName;
                rootNode1.NodeID = item.UnitWorkId;
                rootNode1.CommandName = "单位工程";
                //rootNode1.EnableExpandEvent = true;
                //rootNode1.EnableClickEvent = true;
                this.tvControlItem.Nodes.Add(rootNode1);
                var foreignCNProfessionals = from x in Funs.DB.WBS_ForeignCNProfessional where x.CNProfessionalId == cnProfessionalId orderby x.SortIndex select x;
                foreach (var item2 in foreignCNProfessionals)
                {
                    TreeNode rootNode2 = new TreeNode();
                    rootNode2.Text = item2.ProfessionalName;
                    rootNode2.NodeID = rootNode1.NodeID + "|" + item2.CNProfessionalId;
                    rootNode2.CommandName = "国外专业";
                    rootNode2.EnableExpandEvent = true;
                    rootNode2.EnableClickEvent = true;
                    rootNode1.Nodes.Add(rootNode2);
                }
            }
        }
        #endregion
        #region 点击树节点
        /// 
        /// 点击树节点
        /// 
        /// 
        /// 
        protected void tvControlItem_NodeCommand(object sender, TreeCommandEventArgs e)
        {
            string ids = this.tvControlItem.SelectedNodeID;
            this.hdUnitWorkId.Text = ids.Split('|').ToList()[0];
            this.hdCNProfessionalId.Text = ids.Split('|').ToList()[1];
            BindGrid();
        }
        #endregion
        #region 分页
        /// 
        /// 分页
        /// 
        /// 
        /// 
        protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e)
        {
            Grid1.PageIndex = e.NewPageIndex;
            BindGrid();
        }
        /// 
        /// 下拉框分页
        /// 
        /// 
        /// 
        protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e)
        {
            Grid1.PageSize = Convert.ToInt32(ddlPageSize.SelectedValue);
            BindGrid();
        }
        /// 
        /// 排序
        /// 
        /// 
        /// 
        protected void Grid1_Sort(object sender, FineUIPro.GridSortEventArgs e)
        {
            Grid1.SortDirection = e.SortDirection;
            Grid1.SortField = e.SortField;
            BindGrid();
        }
        #endregion
        #region 数据绑定
        /// 
        /// 绑定数据 
        /// 
        private void BindGrid()
        {
            string strSql = @"SELECT ForeignBreakdownProject.BreakdownProjectId, 
                                     ForeignBreakdownProject.ProjectId, 
                                     ForeignBreakdownProject.UnitWorkId, 
                                     ForeignBreakdownProject.CNProfessionalId,
                                     ForeignBreakdownProject.BreakdownCode,
                                     ForeignBreakdownProject.BreakdownName,
                                     ForeignBreakdownProject.BreakdownDef,
                                     ForeignBreakdownProject.Remark,
                                     ForeignBreakdownProject.SortIndex,
                                     ForeignBreakdownProject.IsSelected"
                            + @" FROM WBS_ForeignBreakdownProject AS ForeignBreakdownProject "
                            + @" WHERE ForeignBreakdownProject.ProjectId=@ProjectId"
                            + @" AND ForeignBreakdownProject.UnitWorkId=@UnitWorkId"
                            + @" AND ForeignBreakdownProject.CNProfessionalId=@CNProfessionalId";
            List listStr = new List();
            listStr.Add(new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId));
            listStr.Add(new SqlParameter("@UnitWorkId", this.hdUnitWorkId.Text.Trim()));
            listStr.Add(new SqlParameter("@CNProfessionalId", this.hdCNProfessionalId.Text.Trim()));
            //if (!string.IsNullOrEmpty(this.txtBreakdownName.Text.Trim()))
            //{
            //    strSql += " AND ForeignBreakdownProject.BreakdownName LIKE @BreakdownName";
            //    listStr.Add(new SqlParameter("@BreakdownName", "%" + this.txtBreakdownName.Text.Trim() + "%"));
            //}
            SqlParameter[] parameter = listStr.ToArray();
            DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter);
            Grid1.RecordCount = tb.Rows.Count;
            //tb = GetFilteredTable(Grid1.FilteredData, tb);
            var table = this.GetPagedDataTable(Grid1, tb);
            Grid1.DataSource = table;
            Grid1.DataBind();
        }
        #endregion
        #region 确定
        /// 
        /// 确定按钮
        /// 
        /// 
        /// 
        protected void btnSure_Click(object sender, EventArgs e)
        {
            string itemsString = this.Grid1.SelectedRowID + "|" + this.hdUnitWorkId.Text.Trim();
            
            PageContext.RegisterStartupScript(ActiveWindow.GetWriteBackValueReference(itemsString)
                   + ActiveWindow.GetHidePostBackReference());
        }
        #endregion
    }
}