0

さまざまな製品の言語翻訳を追跡するために、SharepointWebパーツをセットアップしています。翻訳を作成できます。誰かがすでに翻訳されているアイテムを選択した場合、つまり「French-ProductX」を選択し、さまざまなtexboxにその翻訳のデータが入力された場合、フォームコントロールを再入力しようとしています/製品。

私のLINQクエリは正しいデータを取得しています(itemnameはユーザーがドロップダウンメニューで選択した製品です)。

   var query = from translation in Translations
               where (Convert.ToString(translation.Name)) == itemname
               select translation;

クエリをグリッドにバインドして、正しいデータを取得していることを確認できますが、その後は行き詰まります。プルしたい2つのフィールド(最初は「説明」と「機能」)が文字列としてあり、対応するasp:TextBoxesに入力します。

配列に変換しようとしましたが、それでも正しくバインドされますが、フィールドのインデックスが作成されておらず、トランスレーションタイプの単一のアイテムとして表示されます。

IEnumerableクエリを実行してデータビューに変換しようとしましたが、WHERE句でキャストエラーが発生し、解決できませんでした。

これを試しましたが、VSは「myitem」は割り当てられていないローカル変数であると言います。

   var query = from translation in Translations
               where (Convert.ToString(translation.Name)) == itemname
               select new { myitem = translation.Description, features = translation.Features };

   ItemDescription.Text = myitem;

これは単純なことのようですが、ここで何かが足りないのでしょうか。

4

1 に答える 1

0

何が起こっているのかというと、myitemとfeaturesのプロパティを持つ匿名タイプのIEnumerableを取得しているということです。

最後の行を次のように変更する必要があります。

ItemDescription.Text = query.First().myitem;
于 2013-03-01T23:27:59.913 に答える