|
Sharepoint Lookup Field
|
|||
---|---|---|---|
#18+
Я создаю кустомное поле в sharepoint.. Изначально проект взял отсюда http://blog.12thwave.com/?p=7 Поменял базовый класс на SPFieldLookup Поменял св-во Value на public override object Value { get { EnsureChildControls(); SPFieldLookupValue returnValue = new SPFieldLookupValue(Convert.ToInt32(CascadingDropDownList.SelectedItem.Value), CascadingDropDownList.SelectedItem.Text); return returnValue; } set { EnsureChildControls(); string lookupValue = Convert.ToString(value), strValue = string.Empty; if (lookupValue.IndexOf('#') > 0) strValue = lookupValue.Substring(0, lookupValue.IndexOf('#') - 1); else strValue = lookupValue; if (!string.IsNullOrEmpty(strValue) && CascadingDropDownList.Items.FindByValue(strValue) != null) CascadingDropDownList.Items.FindByValue(strValue).Selected = true; else if (!this.Field.Required) CascadingDropDownList.SelectedIndex = 0; } } Поменял определение поля на <?xml version="1.0" encoding="utf-8"?> <FieldTypes> <FieldType> <Field Name="TypeName">Cascading Drop Down List</Field> <Field Name="TypeDisplayName">Cascading Drop Down List</Field> <Field Name="TypeShortDescription">Cascading Drop Down List</Field> <Field Name="InternalType">Lookup</Field> <Field Name="SQLType">int</Field> <Field Name="ParentType">Lookup</Field> <Field Name="FieldTypeClass">CascadeDropDown.CascadingDropDownListField, CascadeDropDown, Version=1.0.0.0, Culture=Neutral, PublicKeyToken=9ba647c4a4416404</Field> <Field Name="FieldEditorUserControl">/_controltemplates/CascadingDropDownListFieldEditControl.ascx</Field> <Field Name="Sortable">TRUE</Field> <Field Name="Filterable">TRUE</Field> .. . . <RenderPattern Name="DisplayPattern"> <FieldSwitch> <Expr> <Property Select="FieldRef"/> </Expr> <Case Value=""> <FieldSwitch> <Expr> <Property Select="CountRelated"/> </Expr> <Case Value="TRUE"> <LookupColumn HTMLEncode="TRUE"/> </Case> <Default> <Switch> <Expr> <Column/> </Expr> <Case Value=""> </Case> <Default> <FieldSwitch> <Expr> <Property Select="LookupType"/> </Expr> <Case Value="Computed"> <LookupColumn/> </Case> <Default> <HTML><![CDATA[<A HREF="]]></HTML> <URL Cmd="Lookup"/> <HTML><![CDATA[">]]></HTML> <LookupColumn HTMLEncode="TRUE"/> <HTML><![CDATA[</A>]]></HTML> </Default> </FieldSwitch> </Default> </Switch> </Default> </FieldSwitch> </Case> <Default> <LookupColumn HTMLEncode="TRUE"/> </Default> </FieldSwitch> </RenderPattern> </FieldType> </FieldTypes> Задал в классе филда св-во public override Type FieldValueType { get { return typeof(SPFieldLookupValue); } } Все вроде отлично работает..добавляется как положено НО... Почему то значения в длукапных полях получаются 2;#2 , 4;#4.. Что за ерунда.. При том что св-во Value создает правильные значения.. Т.е. new SPFieldLookupValue( 2,"Avenir IT"). И переходит по лукапам тоже правильно.. Я уже недели 2 не могу разобраться с этой проблемой. Идеи,терпение,сроки вышли. Помогите пожалуйста разобраться.. Я проект выложил http://files.mail.ru/AG6CL7 Вам думаю тоже такая фишка может пригодиться. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2009, 14:14 |
|
Sharepoint Lookup Field
|
|||
---|---|---|---|
#18+
Вощем разобрался я с этой проблемой. Все я правильно делал. Просто нужно было правильно указать св-ва LookupList и LookupField ..я присвоил св-ву LookupField колонку ID. Просто я забыл что эти св-ва устанавливаются после задания св-тв филда. Это меня с толку сбило и все мои эксперименты были вокруг да около одного и того же. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2009, 11:48 |
|
|
start [/forum/topic.php?fid=12&fpage=18&tid=1330519]: |
0ms |
get settings: |
11ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
38ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
30ms |
get tp. blocked users: |
1ms |
others: | 251ms |
total: | 362ms |
0 / 0 |