コード例 #1
0
    protected void rbl_ValueFrom_SelectedIndexChanged(object sender, EventArgs e)
    {
        tbx_searchvalue.Text = "";
        tbx_searchvalue.Attributes["onfocus"] = "";
        cbl_SearchValue.Items.Clear();

        tbx_searchvalue.Visible   = false;
        cbl_SearchValue.Visible   = false;
        MCSSelectControl1.Visible = false;
        MCSTreeControl1.Visible   = false;
        ddl_Param.Visible         = false;

        if (rbl_ValueFrom.SelectedValue == "M")
        {
            #region 条件选择
            UD_ModelFields modelfield = new UD_ModelFieldsBLL(new Guid(ddl_Field.SelectedValue), true).Model;
            if (modelfield == null)
            {
                return;
            }

            switch (modelfield.RelationType)
            {
            case 1:
                //字典关联
                cbl_SearchValue.DataTextField  = "Value";
                cbl_SearchValue.DataValueField = "Key";
                cbl_SearchValue.DataSource     = DictionaryBLL.GetDicCollections(modelfield.RelationTableName);
                cbl_SearchValue.DataBind();
                cbl_SearchValue.Visible = true;
                break;

            case 2:
                //实体表关联
                if (!string.IsNullOrEmpty(modelfield.SearchPageURL))
                {
                    //通过查询控件查询
                    MCSSelectControl1.PageUrl = modelfield.SearchPageURL;
                    MCSSelectControl1.Visible = true;
                }
                else if (new UD_TableListBLL(modelfield.RelationTableName).Model.TreeFlag == "Y")
                {
                    MCSTreeControl1.DataSource = null;
                    if (modelfield.RelationTableName == "MCS_SYS.dbo.Addr_OrganizeCity")
                    {
                        #region 如果为管理片区字段,则取员工所能管辖的片区
                        Org_StaffBLL staff = new Org_StaffBLL((int)System.Web.HttpContext.Current.Session["UserID"]);
                        MCSTreeControl1.DataSource = staff.GetStaffOrganizeCity();

                        if (MCSTreeControl1.DataSource.Select("ID = 1").Length > 0 || staff.Model.OrganizeCity == 0)
                        {
                            MCSTreeControl1.RootValue   = "0";
                            MCSTreeControl1.SelectValue = "0";
                        }
                        else
                        {
                            MCSTreeControl1.RootValue   = new Addr_OrganizeCityBLL(staff.Model.OrganizeCity).Model.SuperID.ToString();
                            MCSTreeControl1.SelectValue = staff.Model.OrganizeCity.ToString();
                        }

                        #endregion
                    }
                    else
                    {
                        //通过树形结构查询
                        MCSTreeControl1.TableName   = modelfield.RelationTableName;
                        MCSTreeControl1.RootValue   = "0";
                        MCSTreeControl1.SelectValue = "0";
                    }
                    MCSTreeControl1.DataBind();
                    MCSTreeControl1.Visible = true;
                }
                else
                {
                    //其他关联方式的实体表
                    cbl_SearchValue.DataTextField  = "Value";
                    cbl_SearchValue.DataValueField = "Key";
                    cbl_SearchValue.DataSource     = TreeTableBLL.GetRelationTableSourceData(modelfield.RelationTableName, modelfield.RelationValueField, modelfield.RelationTextField);
                    cbl_SearchValue.DataBind();
                    cbl_SearchValue.Visible = true;
                }
                break;

            default:
                //非关联字段
                tbx_searchvalue.Visible = true;
                break;
            }

            #endregion
        }
        else
        {
            ddl_Param.Visible = true;
        }
    }
コード例 #2
0
    protected void ddl_Field_SelectedIndexChanged(object sender, EventArgs e)
    {
        tbx_searchvalue.Text = "";
        tbx_searchvalue.Attributes["onfocus"] = "";
        cbl_SearchValue.Items.Clear();
        ddl_op.Items.Clear();
        ddl_TreeLevel.Visible = false;

        tbx_searchvalue.Visible   = false;
        cbl_SearchValue.Visible   = false;
        MCSSelectControl1.Visible = false;
        MCSTreeControl1.Visible   = false;

        #region 条件选择
        UD_ModelFields modelfield = null;
        try
        {
            modelfield = new UD_ModelFieldsBLL(new Guid(ddl_Field.SelectedValue), true).Model;
        }
        catch { }

        if (modelfield == null)
        {
            #region 外部自定义条件
            ddl_op.Items.Add(new ListItem("等于", "="));
            ddl_op.Items.Add(new ListItem("大于", ">"));
            ddl_op.Items.Add(new ListItem("大于等于", ">="));
            ddl_op.Items.Add(new ListItem("小于", "<"));
            ddl_op.Items.Add(new ListItem("小于等于", "<="));
            ddl_op.Items.Add(new ListItem("不等于", "<>"));
            tbx_searchvalue.Visible = true;
            #endregion
        }
        else
        {
            switch (modelfield.RelationType)
            {
            case 1:
                #region 字典关联
                cbl_SearchValue.DataTextField  = "Value";
                cbl_SearchValue.DataValueField = "Key";
                cbl_SearchValue.DataSource     = DictionaryBLL.GetDicCollections(modelfield.RelationTableName);
                cbl_SearchValue.DataBind();
                cbl_SearchValue.Visible = true;
                ddl_op.Items.Insert(0, new ListItem("值", "SELECTITEM"));
                break;

                #endregion
            case 2:
                #region 实体表关联
                if (!string.IsNullOrEmpty(modelfield.SearchPageURL))
                {
                    //通过查询控件查询
                    MCSSelectControl1.PageUrl = modelfield.SearchPageURL;
                    MCSSelectControl1.Visible = true;
                }
                else if (new UD_TableListBLL(modelfield.RelationTableName).Model.TreeFlag == "Y")
                {
                    if (modelfield.RelationTableName == "MCS_SYS.dbo.Addr_OrganizeCity")
                    {
                        #region 如果为管理片区字段,则取员工所能管辖的片区
                        Org_StaffBLL staff = new Org_StaffBLL((int)System.Web.HttpContext.Current.Session["UserID"]);
                        MCSTreeControl1.DataSource = staff.GetStaffOrganizeCity();

                        if (MCSTreeControl1.DataSource.Select("ID = 1").Length > 0 || staff.Model.OrganizeCity == 0)
                        {
                            MCSTreeControl1.RootValue   = "0";
                            MCSTreeControl1.SelectValue = "0";
                        }
                        else
                        {
                            MCSTreeControl1.RootValue   = new Addr_OrganizeCityBLL(staff.Model.OrganizeCity).Model.SuperID.ToString();
                            MCSTreeControl1.SelectValue = staff.Model.OrganizeCity.ToString();
                        }
                        #endregion
                    }
                    else
                    {
                        //通过树形结构查询
                        MCSTreeControl1.DataSource  = null;
                        MCSTreeControl1.TableName   = modelfield.RelationTableName;
                        MCSTreeControl1.RootValue   = "0";
                        MCSTreeControl1.SelectValue = "0";
                    }
                    MCSTreeControl1.DataBind();
                    MCSTreeControl1.Visible = true;

                    #region 如果是管理片区或行政城市,可以选择指定的树形级别
                    if (modelfield.RelationTableName == "MCS_SYS.dbo.Addr_OrganizeCity")
                    {
                        ddl_TreeLevel.Items.Clear();
                        ddl_TreeLevel.Items.Insert(0, new ListItem("所属于", "100"));
                        ddl_TreeLevel.Items.Insert(1, new ListItem("当前值", "0"));
                        ddl_TreeLevel.Visible = true;
                    }
                    else if (modelfield.RelationTableName == "MCS_SYS.dbo.Addr_OfficialCity")
                    {
                        ddl_TreeLevel.Items.Clear();
                        ddl_TreeLevel.Items.Insert(0, new ListItem("所属于", "100"));
                        ddl_TreeLevel.Items.Insert(1, new ListItem("当前值", "0"));
                        ddl_TreeLevel.Visible = true;
                    }
                    #endregion
                }
                else
                {
                    //其他关联方式的实体表
                    cbl_SearchValue.DataTextField  = "Value";
                    cbl_SearchValue.DataValueField = "Key";
                    cbl_SearchValue.DataSource     = TreeTableBLL.GetRelationTableSourceData(modelfield.RelationTableName, modelfield.RelationValueField, modelfield.RelationTextField);
                    cbl_SearchValue.DataBind();
                    cbl_SearchValue.Visible = true;
                }
                ddl_op.Items.Insert(0, new ListItem("值", "SELECTITEM"));
                break;

                #endregion
            default:
                #region 非关联字段
                switch (modelfield.DataType)
                {
                case 1:             //整型(int)
                case 2:             //小数(decimal)
                    ddl_op.Items.Add(new ListItem("等于", "="));
                    ddl_op.Items.Add(new ListItem("大于", ">"));
                    ddl_op.Items.Add(new ListItem("大于等于", ">="));
                    ddl_op.Items.Add(new ListItem("小于", "<"));
                    ddl_op.Items.Add(new ListItem("小于等于", "<="));
                    ddl_op.Items.Add(new ListItem("不等于", "<>"));
                    break;

                case 3:             //字符串(varchar)
                case 6:             //字符串(nvarchar)
                case 8:             //ntext
                    ddl_op.Items.Add(new ListItem("等于", "="));
                    ddl_op.Items.Add(new ListItem("相似", "like"));
                    ddl_op.Items.Add(new ListItem("起始于", "StartWith"));
                    ddl_op.Items.Add(new ListItem("不起始于", "NotStartWith"));
                    break;

                case 4:             //日期(datetime)
                    ddl_op.Items.Add(new ListItem("等于", "="));
                    ddl_op.Items.Add(new ListItem("大于等于", ">="));
                    ddl_op.Items.Add(new ListItem("小于等于", "<="));
                    ddl_op.Visible = true;

                    tbx_searchvalue.Attributes["onfocus"] = "setday(this)";
                    break;

                case 5:             //GUID(uniqueidentifier)
                case 7:             //bit
                    ddl_op.Items.Add(new ListItem("等于", "="));
                    ddl_op.Items.Add(new ListItem("不等于", "<>"));
                    break;
                }
                tbx_searchvalue.Visible = true;
                break;
                #endregion
            }

            ddl_op.Items.Add(new ListItem("不为空", "NOTNULL"));
            ddl_op.Items.Add(new ListItem("为空", "ISNULL"));
        }
        #endregion
        ddl_op.SelectedIndex = 0;
    }