2009-03-02 6 views
8

こんにちは私はSharePoint名前空間を使用して開発していますが、私のサイトからURL列を取得しようとすると次のエラーが発生しました。SharePointリストエラー:「期待値域内に値が入っていません」

"Value does not fall within the expected range" 

私がやっているすべては、次のとおりです。

item["URL"] 

誰かが、私はこれについて何ができるかを教えてもらえますか?

+0

あなたはどの言語を使用していますか? –

答えて

0

これは、通常、「URL」がリストのフィールドではないことを意味します。

昇格したInfoPath列の場合は、サイトのフォームテンプレートを無効にして再度アクティブ化してみてください。私はinfopathテンプレートに新しい昇格フィールドを追加するたびにこれを行う必要があることに気付きました。

+0

リストにあります... –

+0

特定の 'item'にはnullがありますか? – vapcguy

1

SPListItemのURLを取得するには、Item.Urlを使用してください。

+0

私が探しているURLではなく、私が作成した列のURLを探しています。 –

+0

昇格したInfoPathの列の場合は、サイトのフォームテンプレートを無効にして再度アクティブにしてみてください。私はinfopathテンプレートに新しい昇格フィールドを追加するたびにこれを行う必要があることに気付きました。 – Tundey

8

エラーは間違いなくフィールドが見つからないことを意味します。

プロセスをデバッグし、内部名を見つけるためにListItem.Fields.SchemaXMLプロパティを調べます。内部ではURL以外の名前で保存することができます。次のメソッドを使用して、リスト項目の値を取得することもできます。

SPField l_field = l_item.Fields.GetField("URL"); 
string l_fieldValue = l_item[l_field.Id].ToString(); 

GetField方法は、両方のDisplayName & InternalNameでフィールドを探します。

+0

SharePointのスキーマXMLやその他の楽しいものを探すためにSharePointマネージャをお勧めします – Nat

+2

2つのポイント - SPBuiltInFieldId列挙を忘れずに、必要なフィールドを含むGetItemsのSPQueryバージョンを使用しているかどうかを確認してくださいクエリの部分 –

+1

なぜ、シェアポイントは「フィールドが見つからない」とか、そういうことはできないのですか?おそらくそれは私だけですが、これらのエラーメッセージはイライラしています。彼らはコードバブルの例外を放棄してプログラマに推測させているようだ... – osiris

1
public static string GetItemURLValue(SPListItem item, string fieldName) 
    { 
     string exit = ""; 
     SPFieldUrlValue link = new SPFieldUrlValue(item[fieldName].ToString()); 
     exit = link.Url; 
     return exit; 
    } 
0

URLを取得する特別な方法があります。試してみてください:

SPListItem li = ... 
SPFieldUrlValue fuv = new SPFieldUrlValue(li[strFieldName].ToString()); 
return fuv.Url; 
+1

申し訳ありませんが、ライアンが同様のソリューションを投稿していることがわかります。 – strongopinions

0

マインはWindowsアプリケーションです。私は設定を作成してデプロイした後、この例外を取得することがありました。

私のアプリケーションはExcelで記述して保存する必要がありました。 COMコンポーネント 'Microsoft Excel 11.0 Object'のリファレンスを使用しました。私はこのリファレンスを追加すると、実際には3つのdllが参照リストに表示されることに気付きました。

  1. Microsoft.office.core
  2. エクセル
  3. VBIDE

私は 'VBIDE' の参照を削除し、私の問題が解決されます。

0

それだけで列名だとフォーマット「テキストのシングルライン」で、何についての場合:

item["URL"] != null ? item["URL"].ToString() : "Not Found"; 
関連する問題