protected void gv_List_SelectedIndexChanging(object sender, GridViewSelectEventArgs e)
    {
        string _name = (string)gv_List.DataKeys[e.NewSelectedIndex]["Name"];

        ListTable <EWF_Flow_DataObject> lt = (ListTable <EWF_Flow_DataObject>)ViewState["ListTable"];

        if (lt.Contains(_name))
        {
            EWF_Flow_DataObject item = lt[_name];

            ViewState["SelectedName"]        = item["Name"];
            tbx_Name.Text                    = item["Name"];
            tbx_DisplayName.Text             = item["DisplayName"];
            ddl_DataType.SelectedValue       = item["DataType"];
            rbl_ReadOnly.SelectedValue       = item["ReadOnly"];
            rbl_Enable.SelectedValue         = item["Enable"];
            rbl_Visible.SelectedValue        = item["Visible"];
            ddl_ControlType.SelectedValue    = item["ControlType"];
            tbx_ControlWidth.Text            = item["ControlWidth"] == "0" ? "" : item["ControlWidth"];
            tbx_ControlHeight.Text           = item["ControlHeight"] == "0" ? "" : item["ControlHeight"];
            tbx_ControlStyle.Text            = item["ControlStyle"];
            tbx_ColSpan.Text                 = item["ColSpan"];
            tbx_SortID.Text                  = item["SortID"];
            rbl_IsRequireField.SelectedValue = item["IsRequireField"];
            tbx_RegularExpression.Text       = item["RegularExpression"];
            tbx_FormatString.Text            = item["FormatString"];
            tbx_Description.Text             = item["Description"];

            if (int.Parse(item["RelationType"]) > 0)
            {
                rbl_RelationType.SelectedValue = item["RelationType"];
            }
            rbl_RelationType_SelectedIndexChanged(null, null);


            if (rbl_RelationType.SelectedValue != "3")
            {
                if (ddl_RelationTableName != null || ddl_RelationTableName.Items.Count != 0)
                {
                    ddl_RelationTableName.SelectedValue = item["RelationTableName"];
                    {
                        ddl_RelationTableName_SelectedIndexChanged(null, null);
                    }
                }
                if (ddl_RelationTextField != null || ddl_RelationTextField.Items.Count != 0)
                {
                    ddl_RelationTextField.SelectedValue = item["RelationTextField"];
                }
                if (ddl_RelationValueField != null || ddl_RelationValueField.Items.Count != 0)
                {
                    ddl_RelationValueField.SelectedValue = item["RelationValueField"];
                }
            }
            tbx_SearchPageURL.Text = item["SearchPageURL"];


            bt_Add.Text = "修 改";
        }
    }
 private string GetRelateTextByValue(EWF_Flow_DataObject field, string value)
 {
     if (field.RelationType == 1)
     {
         //关联字典表
         return(DictionaryBLL.GetDicCollections(field.RelationTableName, false)[value].Name);
     }
     else if (field.RelationType == 2)
     {
         //关联实体表
         return(TreeTableBLL.GetRelationTableDataValue(field.RelationTableName, field.RelationValueField, field.RelationTextField, value));
     }
     else
     {
         return(value);
     }
 }
    protected void bt_AddDefineDataObject_Click(object sender, EventArgs e)
    {
        ListTable<EWF_Flow_DataObject> lt = (ListTable<EWF_Flow_DataObject>)ViewState["ListTable"];

        #region 寻找最大排序ID号
        int maxsortid = 0;
        foreach (EWF_Flow_DataObject item in lt.GetListItem())
        {
            if (maxsortid < item.SortID) maxsortid = item.SortID;
        }
        #endregion

        foreach (ListItem listitem in cbx_PreDefineDO.Items)
        {
            if (!listitem.Selected) continue;
            maxsortid++;
            EWF_Flow_DataObject item;
            switch (listitem.Value)
            {
                case "Position":
                    #region 职位
                    item = new EWF_Flow_DataObject();
                    item["App"] = ViewState["AppID"].ToString();
                    item["Name"] = "Position";
                    item["DisplayName"] = "发起人职位";
                    item["DataType"] = "1";     //整形数值
                    item["ReadOnly"] = "N";
                    item["Enable"] = "Y";
                    item["Visible"] = "Y";
                    item["ControlType"] = "1";
                    item["ColSpan"] = "2";
                    item["SortID"] = maxsortid.ToString();
                    item["IsRequireField"] = "N";
                    item["RelationType"] = "2";
                    item["RelationTableName"] = "MCS_SYS.dbo.Org_Position";
                    item["RelationValueField"] = "ID";
                    item["RelationTextField"] = "Name";

                    lt.Add(item);
                    break;
                    #endregion
                case "OrganizeCity":
                    #region 当前管理片区
                    item = new EWF_Flow_DataObject();
                    item["App"] = ViewState["AppID"].ToString();
                    item["Name"] = "OrganizeCityID";
                    item["DisplayName"] = "当前管理片区";
                    item["DataType"] = "1";     //整形数值
                    item["ReadOnly"] = "N";
                    item["Enable"] = "N";
                    item["Visible"] = "Y";
                    item["ControlType"] = "1";
                    item["ColSpan"] = "2";
                    item["SortID"] = maxsortid.ToString();
                    item["IsRequireField"] = "N";
                    item["RelationType"] = "2";
                    item["RelationTableName"] = "MCS_SYS.dbo.Addr_OrganizeCity";
                    item["RelationValueField"] = "ID";
                    item["RelationTextField"] = "Name";

                    lt.Add(item);

                    item = new EWF_Flow_DataObject();
                    item["App"] = ViewState["AppID"].ToString();
                    item["Name"] = "OrganizeCityName";
                    item["DisplayName"] = "管理片区名称";
                    item["DataType"] = "1";     //整形数值
                    item["ReadOnly"] = "N";
                    item["Enable"] = "N";
                    item["Visible"] = "N";
                    item["ControlType"] = "1";
                    item["ColSpan"] = "2";
                    item["SortID"] = maxsortid.ToString();
                    item["IsRequireField"] = "N";
                    item["RelationType"] = "3";

                    lt.Add(item);
                    break;
                    #endregion
                case "OfficeCity":
                    #region 所属办事处
                    item = new EWF_Flow_DataObject();
                    item["App"] = ViewState["AppID"].ToString();
                    item["Name"] = "OfficeCityID";
                    item["DisplayName"] = "所属办事处ID";
                    item["DataType"] = "1";     //整形数值
                    item["ReadOnly"] = "N";
                    item["Enable"] = "N";
                    item["Visible"] = "N";
                    item["ControlType"] = "1";
                    item["ColSpan"] = "2";
                    item["SortID"] = maxsortid.ToString();
                    item["IsRequireField"] = "N";
                    item["RelationType"] = "3";
                    lt.Add(item);

                    item = new EWF_Flow_DataObject();
                    item["App"] = ViewState["AppID"].ToString();
                    item["Name"] = "OfficeCityName";
                    item["DisplayName"] = "所属办事处名称";
                    item["DataType"] = "1";     //整形数值
                    item["ReadOnly"] = "N";
                    item["Enable"] = "N";
                    item["Visible"] = "Y";
                    item["ControlType"] = "1";
                    item["ColSpan"] = "2";
                    item["SortID"] = maxsortid.ToString();
                    item["IsRequireField"] = "N";
                    item["RelationType"] = "3";

                    lt.Add(item);
                    break;
                    #endregion
                case "Remark":
                    #region 备注
                    item = new EWF_Flow_DataObject();
                    item["App"] = ViewState["AppID"].ToString();
                    item["Name"] = "Remark";
                    item["DisplayName"] = "备注";
                    item["DataType"] = "3";     //整形数值
                    item["ReadOnly"] = "N";
                    item["Enable"] = "N";
                    item["Visible"] = "Y";
                    item["ControlType"] = "5";
                    item["ColSpan"] = "3";
                    item["SortID"] = maxsortid.ToString();
                    item["IsRequireField"] = "N";
                    item["RelationType"] = "3";
                    item["ControlWidth"] = "500";
                    item["ControlHeight"] = "60";
                    lt.Add(item);
                    break;
                    #endregion
            }
        }
        tbx_SortID.Text = maxsortid.ToString();
        BindGrid();
    }
    //新增
    protected void bt_Add_Click(object sender, EventArgs e)
    {
        ListTable<EWF_Flow_DataObject> lt = (ListTable<EWF_Flow_DataObject>)ViewState["ListTable"];

        if (ViewState["SelectedName"] == null)
        {
            if (!lt.Contains(tbx_Name.Text))
            {
                #region 新增数据字段
                EWF_Flow_DataObject item = new EWF_Flow_DataObject();
                item["App"] = ViewState["AppID"].ToString();
                item["Name"] = tbx_Name.Text;
                item["DisplayName"] = tbx_DisplayName.Text;
                item["DataType"] = ddl_DataType.SelectedValue;
                item["ReadOnly"] = rbl_ReadOnly.SelectedValue;
                item["Enable"] = rbl_Enable.SelectedValue;
                item["Visible"] = rbl_Visible.SelectedValue;
                item["ControlType"] = ddl_ControlType.SelectedValue;
                item["ControlWidth"] = tbx_ControlWidth.Text;
                item["ControlHeight"] = tbx_ControlHeight.Text;
                item["ControlStyle"] = tbx_ControlStyle.Text;
                item["ColSpan"] = tbx_ColSpan.Text;
                item["SortID"] = tbx_SortID.Text;
                item["IsRequireField"] = rbl_IsRequireField.SelectedValue;
                item["RegularExpression"] = tbx_RegularExpression.Text;
                item["FormatString"] = tbx_FormatString.Text;
                item["Description"] = tbx_Description.Text;
                item["RelationType"] = rbl_RelationType.SelectedValue;

                if (item["RelationType"] != "3")
                {
                    item["RelationTableName"] = ddl_RelationTableName.SelectedValue;
                    if (item["RelationType"] == "2")
                    {
                        item["RelationValueField"] = ddl_RelationValueField.SelectedValue;
                        item["RelationTextField"] = ddl_RelationTextField.SelectedValue;
                    }
                }
                item["SearchPageURL"] = tbx_SearchPageURL.Text;
                lt.Add(item);
                #endregion
            }
        }
        else
        {
            if (lt.Contains((string)ViewState["SelectedName"]))
            {
                #region 修改数据字段
                EWF_Flow_DataObject item = lt[(string)ViewState["SelectedName"]];

                item["App"] = ViewState["AppID"].ToString();
                item["Name"] = tbx_Name.Text;
                item["DisplayName"] = tbx_DisplayName.Text;
                item["DataType"] = ddl_DataType.SelectedValue;
                item["ReadOnly"] = rbl_ReadOnly.SelectedValue;
                item["Enable"] = rbl_Enable.SelectedValue;
                item["Visible"] = rbl_Visible.SelectedValue;
                item["ControlType"] = ddl_ControlType.SelectedValue;
                item["ControlWidth"] = tbx_ControlWidth.Text;
                item["ControlHeight"] = tbx_ControlHeight.Text;
                item["ControlStyle"] = tbx_ControlStyle.Text;
                item["ColSpan"] = tbx_ColSpan.Text;
                item["SortID"] = tbx_SortID.Text;
                item["IsRequireField"] = rbl_IsRequireField.SelectedValue;
                item["RegularExpression"] = tbx_RegularExpression.Text;
                item["FormatString"] = tbx_FormatString.Text;
                item["Description"] = tbx_Description.Text;
                item["RelationType"] = rbl_RelationType.SelectedValue;
                if (item["RelationType"] != "3")
                {
                    item["RelationTableName"] = ddl_RelationTableName.SelectedValue;
                    if (item["RelationType"] == "2")
                    {
                        item["RelationValueField"] = ddl_RelationValueField.SelectedValue;
                        item["RelationTextField"] = ddl_RelationTextField.SelectedValue;
                    }
                }
                item["SearchPageURL"] = tbx_SearchPageURL.Text;
                lt.Update(item);
                #endregion

            }

            ViewState["SelectedName"] = null;
        }

        bt_Add.Text = "新 增";
        gv_List.SelectedIndex = -1;

        tbx_DisplayName.Text = "";
        tbx_Name.Text = "";
        tbx_SortID.Text = (int.Parse(tbx_SortID.Text) + 1).ToString();
        BindGrid();
    }
 private string GetRelateTextByValue(EWF_Flow_DataObject field, string value)
 {
     if (field.RelationType == 1)
     {
         //关联字典表
         return DictionaryBLL.GetDicCollections(field.RelationTableName, false)[value].Name;
     }
     else if (field.RelationType == 2)
     {
         //关联实体表
         return TreeTableBLL.GetRelationTableDataValue(field.RelationTableName, field.RelationValueField, field.RelationTextField, value);
     }
     else
         return value;
 }
    protected void bt_AddDefineDataObject_Click(object sender, EventArgs e)
    {
        ListTable <EWF_Flow_DataObject> lt = (ListTable <EWF_Flow_DataObject>)ViewState["ListTable"];

        #region 寻找最大排序ID号
        int maxsortid = 0;
        foreach (EWF_Flow_DataObject item in lt.GetListItem())
        {
            if (maxsortid < item.SortID)
            {
                maxsortid = item.SortID;
            }
        }
        #endregion


        foreach (ListItem listitem in cbx_PreDefineDO.Items)
        {
            if (!listitem.Selected)
            {
                continue;
            }
            maxsortid++;
            EWF_Flow_DataObject item;
            switch (listitem.Value)
            {
            case "Position":
                #region 职位
                item                       = new EWF_Flow_DataObject();
                item["App"]                = ViewState["AppID"].ToString();
                item["Name"]               = "Position";
                item["DisplayName"]        = "发起人职位";
                item["DataType"]           = "1"; //整形数值
                item["ReadOnly"]           = "N";
                item["Enable"]             = "Y";
                item["Visible"]            = "Y";
                item["ControlType"]        = "1";
                item["ColSpan"]            = "2";
                item["SortID"]             = maxsortid.ToString();
                item["IsRequireField"]     = "N";
                item["RelationType"]       = "2";
                item["RelationTableName"]  = "MCS_SYS.dbo.Org_Position";
                item["RelationValueField"] = "ID";
                item["RelationTextField"]  = "Name";

                lt.Add(item);
                break;

                #endregion
            case "OrganizeCity":
                #region 当前管理片区
                item                       = new EWF_Flow_DataObject();
                item["App"]                = ViewState["AppID"].ToString();
                item["Name"]               = "OrganizeCityID";
                item["DisplayName"]        = "当前管理片区";
                item["DataType"]           = "1"; //整形数值
                item["ReadOnly"]           = "N";
                item["Enable"]             = "N";
                item["Visible"]            = "Y";
                item["ControlType"]        = "1";
                item["ColSpan"]            = "2";
                item["SortID"]             = maxsortid.ToString();
                item["IsRequireField"]     = "N";
                item["RelationType"]       = "2";
                item["RelationTableName"]  = "MCS_SYS.dbo.Addr_OrganizeCity";
                item["RelationValueField"] = "ID";
                item["RelationTextField"]  = "Name";

                lt.Add(item);

                item                   = new EWF_Flow_DataObject();
                item["App"]            = ViewState["AppID"].ToString();
                item["Name"]           = "OrganizeCityName";
                item["DisplayName"]    = "管理片区名称";
                item["DataType"]       = "1";   //整形数值
                item["ReadOnly"]       = "N";
                item["Enable"]         = "N";
                item["Visible"]        = "N";
                item["ControlType"]    = "1";
                item["ColSpan"]        = "2";
                item["SortID"]         = maxsortid.ToString();
                item["IsRequireField"] = "N";
                item["RelationType"]   = "3";

                lt.Add(item);
                break;

                #endregion
            case "OfficeCity":
                #region 所属办事处
                item                   = new EWF_Flow_DataObject();
                item["App"]            = ViewState["AppID"].ToString();
                item["Name"]           = "OfficeCityID";
                item["DisplayName"]    = "所属办事处ID";
                item["DataType"]       = "1";   //整形数值
                item["ReadOnly"]       = "N";
                item["Enable"]         = "N";
                item["Visible"]        = "N";
                item["ControlType"]    = "1";
                item["ColSpan"]        = "2";
                item["SortID"]         = maxsortid.ToString();
                item["IsRequireField"] = "N";
                item["RelationType"]   = "3";
                lt.Add(item);

                item                   = new EWF_Flow_DataObject();
                item["App"]            = ViewState["AppID"].ToString();
                item["Name"]           = "OfficeCityName";
                item["DisplayName"]    = "所属办事处名称";
                item["DataType"]       = "1";   //整形数值
                item["ReadOnly"]       = "N";
                item["Enable"]         = "N";
                item["Visible"]        = "Y";
                item["ControlType"]    = "1";
                item["ColSpan"]        = "2";
                item["SortID"]         = maxsortid.ToString();
                item["IsRequireField"] = "N";
                item["RelationType"]   = "3";

                lt.Add(item);
                break;

                #endregion
            case "Remark":
                #region 备注
                item                   = new EWF_Flow_DataObject();
                item["App"]            = ViewState["AppID"].ToString();
                item["Name"]           = "Remark";
                item["DisplayName"]    = "备注";
                item["DataType"]       = "3";   //整形数值
                item["ReadOnly"]       = "N";
                item["Enable"]         = "N";
                item["Visible"]        = "Y";
                item["ControlType"]    = "5";
                item["ColSpan"]        = "3";
                item["SortID"]         = maxsortid.ToString();
                item["IsRequireField"] = "N";
                item["RelationType"]   = "3";
                item["ControlWidth"]   = "500";
                item["ControlHeight"]  = "60";
                lt.Add(item);
                break;
                #endregion
            }
        }
        tbx_SortID.Text = maxsortid.ToString();
        BindGrid();
    }
    //新增
    protected void bt_Add_Click(object sender, EventArgs e)
    {
        ListTable <EWF_Flow_DataObject> lt = (ListTable <EWF_Flow_DataObject>)ViewState["ListTable"];

        if (ViewState["SelectedName"] == null)
        {
            if (!lt.Contains(tbx_Name.Text))
            {
                #region 新增数据字段
                EWF_Flow_DataObject item = new EWF_Flow_DataObject();
                item["App"]               = ViewState["AppID"].ToString();
                item["Name"]              = tbx_Name.Text;
                item["DisplayName"]       = tbx_DisplayName.Text;
                item["DataType"]          = ddl_DataType.SelectedValue;
                item["ReadOnly"]          = rbl_ReadOnly.SelectedValue;
                item["Enable"]            = rbl_Enable.SelectedValue;
                item["Visible"]           = rbl_Visible.SelectedValue;
                item["ControlType"]       = ddl_ControlType.SelectedValue;
                item["ControlWidth"]      = tbx_ControlWidth.Text;
                item["ControlHeight"]     = tbx_ControlHeight.Text;
                item["ControlStyle"]      = tbx_ControlStyle.Text;
                item["ColSpan"]           = tbx_ColSpan.Text;
                item["SortID"]            = tbx_SortID.Text;
                item["IsRequireField"]    = rbl_IsRequireField.SelectedValue;
                item["RegularExpression"] = tbx_RegularExpression.Text;
                item["FormatString"]      = tbx_FormatString.Text;
                item["Description"]       = tbx_Description.Text;
                item["RelationType"]      = rbl_RelationType.SelectedValue;

                if (item["RelationType"] != "3")
                {
                    item["RelationTableName"] = ddl_RelationTableName.SelectedValue;
                    if (item["RelationType"] == "2")
                    {
                        item["RelationValueField"] = ddl_RelationValueField.SelectedValue;
                        item["RelationTextField"]  = ddl_RelationTextField.SelectedValue;
                    }
                }
                item["SearchPageURL"] = tbx_SearchPageURL.Text;
                lt.Add(item);
                #endregion
            }
        }
        else
        {
            if (lt.Contains((string)ViewState["SelectedName"]))
            {
                #region 修改数据字段
                EWF_Flow_DataObject item = lt[(string)ViewState["SelectedName"]];

                item["App"]               = ViewState["AppID"].ToString();
                item["Name"]              = tbx_Name.Text;
                item["DisplayName"]       = tbx_DisplayName.Text;
                item["DataType"]          = ddl_DataType.SelectedValue;
                item["ReadOnly"]          = rbl_ReadOnly.SelectedValue;
                item["Enable"]            = rbl_Enable.SelectedValue;
                item["Visible"]           = rbl_Visible.SelectedValue;
                item["ControlType"]       = ddl_ControlType.SelectedValue;
                item["ControlWidth"]      = tbx_ControlWidth.Text;
                item["ControlHeight"]     = tbx_ControlHeight.Text;
                item["ControlStyle"]      = tbx_ControlStyle.Text;
                item["ColSpan"]           = tbx_ColSpan.Text;
                item["SortID"]            = tbx_SortID.Text;
                item["IsRequireField"]    = rbl_IsRequireField.SelectedValue;
                item["RegularExpression"] = tbx_RegularExpression.Text;
                item["FormatString"]      = tbx_FormatString.Text;
                item["Description"]       = tbx_Description.Text;
                item["RelationType"]      = rbl_RelationType.SelectedValue;
                if (item["RelationType"] != "3")
                {
                    item["RelationTableName"] = ddl_RelationTableName.SelectedValue;
                    if (item["RelationType"] == "2")
                    {
                        item["RelationValueField"] = ddl_RelationValueField.SelectedValue;
                        item["RelationTextField"]  = ddl_RelationTextField.SelectedValue;
                    }
                }
                item["SearchPageURL"] = tbx_SearchPageURL.Text;
                lt.Update(item);
                #endregion
            }

            ViewState["SelectedName"] = null;
        }

        bt_Add.Text           = "新 增";
        gv_List.SelectedIndex = -1;

        tbx_DisplayName.Text = "";
        tbx_Name.Text        = "";
        tbx_SortID.Text      = (int.Parse(tbx_SortID.Text) + 1).ToString();
        BindGrid();
    }