RecordGroupDataSourceService

 /// <summary>
        /// Convert value to string
        /// </summary>
        /// <param name="context"></param>
        /// <param name="culture"></param>
        /// <param name="value"></param>
        /// <param name="destinationType"></param>
        /// <returns></returns>
        public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destinationType)
        {
            if (destinationType == typeof(string))
            {
                if (value == null || value.Equals(string.Empty))
                {
                    return string.Empty;
                }
                if (this.recordGroup != null && this.recordGroup.Parent != null)
                {
                    if (!string.IsNullOrEmpty(this.ValueMember))
                    {
                        if (this.ValueMember.Equals(this.DisplayMember, StringComparison.OrdinalIgnoreCase))
                        {
                            return Convert.ToString(value);
                        }
                        else
                        {
                            object item = recordGroup.GetData(this.ValueMember, value);
                            if (item != null)
                            {
                                DataRow row = item as DataRow;
                                if (row != null)
                                {
                                    if (!string.IsNullOrEmpty(this.DisplayMember))
                                        return Convert.ToString(row[this.DisplayMember]);
                                    else
                                        return Convert.ToString(row[this.ValueMember]);
                                }
                                else
                                {
                                    if (this.DisplayMemberProperty != null)
                                    {
                                        return Convert.ToString(this.GetItemDisplayValue(item));
                                    }
                                    else
                                    {
                                        return Convert.ToString(value);
                                    }
                                }
                            }
                        }
                    }
                    else
                    {
                        return Convert.ToString(value);
                    }
                }
            }
            return base.ConvertTo(context, culture, value, destinationType);
        }
posted @ 2010-07-09 23:26  leslie116  阅读(201)  评论(0编辑  收藏  举报