SharePoint WebコントロールLookupFieldコントロールを使用してVS2010(LayoutsPageBaseから継承)で単純なaspxページとしてカスタム編集フォームを作成しました。カスタム型SharePoint 2010のWebコントロール - ポストバック時にLookupFieldの値が設定されていない
からの値ControlModeが
(私は編集するには、この設定を明示的試みているが)FormContextと同じに設定された値の予想される範囲を含むドロップダウンボックスで正しくフォームが表示されます
ポストバックでは、ドロップダウンリストの値が設定されていません - 選択した項目インデックスが-1に設定されています
LookupFieldコントロールを使用して、ユーザーから選択した値を正しく取得するにはどうすればよいですか?
aspxでコントロールのdeclaritivlyを追加してから、ページのロードイベントのSPContextからリストのIDなどを設定することができますか?で
<SharePoint:FileField ID="FileNameText" InputFieldLabel="Name" runat="server" ControlMode="Display"/><br />
<SharePoint:LookupField ID="FeedType" runat="server" />
<SharePoint:TextField ID="FeedStatus" runat="server" />
....:
ASPXから: - (きれいしかし、ちょうどそれがこの時点で動作するように取得しようとしていない)以下のコードを参照してくださいページのロードの背後にあるコード:
if (!IsPostBack)
{
SPItem feedFileItem = SPContext.Current.Item;
FileNameText.ControlMode = SPContext.Current.FormContext.FormMode;
FileNameText.ListId = SPContext.Current.ListId;
FileNameText.ItemId = SPContext.Current.ItemId;
FileNameText.FieldName = "Name";
FeedType.ControlMode = SPControlMode.Edit;
FeedType.ListId = SPContext.Current.ListId;
FeedType.ItemId = SPContext.Current.ItemId;
FeedType.FieldName = "FeedType";
FeedStatus.ItemContext = SPContext.Current;
FeedStatus.RenderContext = SPContext.Current;
FeedStatus.ControlMode = SPControlMode.Edit;
FeedStatus.ListId = SPContext.Current.ListId;
FeedStatus.ItemId = SPContext.Current.ItemId;
FeedStatus.FieldName = "FeedStatus";
}
UPDATE
私はフォームコントロールをCreateChildControlsのオーバーライドのコードの背後に追加することでフォームを取得できました。これはネット上で見たサンプルの大部分と一致しています。
しかし、誰かが私のアプローチがうまくいかなかった理由と、これをaspxの宣言的な方法ですべて実行できるかどうかを説明することができますか?
ポストバックのような音はリストを再バインドしていますが、コードを投稿できますか? – djeeg
サンプルコードが追加されました – Richard