2012-04-30 9 views
2

挨拶、 私はlinq式からソースを取得するグリッドを使用しています。ここでlinqデータソース経由でasp.netグリッドを変更します。

は、例えば、LINQです:

var data = from row in tempCity.AsEnumerable() 
      group row by row.Field<string>("City") into city 
      select new 
      { 
       City = city.Key, 
       Count = city.Count() 
      }; 

グリッドのデータソースに「データ」を割り当てた後、私は私が必要な結果を得ます。 私のアプリケーションを多言語対応にしようとしたときに発生した問題で、グリッドのCityとCountのヘッダーを別の言語に翻訳する方法が見つかりません。

1.都市の代わりに、 "City"という語の代わりに、linqの式の中にGetLocalResource( "City")を書いてください。動作しませんでした。

2.グリッドのプロパティを変更するただし、linqの式がアクションごとに異なるため、希望のクライアントに応じて、私のaspxページにプレマイドカラムがないため、grid.Columnプロパティに到達できません - 常に0とマークされています。

3. DataTable内のすべてのデータを入力してください。これはうまくいくはずですが、それを行うのが正しいとは感じません。ちょっと不器用なようです。よりクリーンなソリューションのように。

ありがとうございます。

答えて

0

解決策1があなたのお気に入りになると思います。しかし、LINQクエリはSQLクエリに変換され、もちろんGetLocalResourceのようなSQLメソッドはありません。

データベースには都市コードのみが格納されており、カルチャに依存する名前がリソースに含まれているようです。 私は次のことを試みます:既存のLINQ文を使ってデータを取得してください。市区町村をあなたのビュー内のローカライズされた文字列に変換します。

<asp:Literal Text='<%# GetLocalResource(Eval("City"))' runat="server" /> 
+0

答えていただきありがとうございます。しかしLinqには2つのフィールドがあるため、私のケースに合っているとは思われません。また、6と9のヘッダーがあるシナリオの切り替えケースがあります。 –

+0

ローカリゼーションに応じて異なる都市数があることを意味しますか?あなたの質問を明確にすることはできますか?たぶんもっと良い解決策を考え出すことができます。私はあなたの最初の解決策を改善しようとしました。ところで、ADO.NET DataTableを照会するようです。あなたのデータソースは何ですか? – slfan

+0

実際に私はDataTableからいくつかの結果を取っています。私はasp:literal \ label \ localizationはうまくいかないと思う理由は、クライアントのクエリに応じて、シナリオ、IE:クエリ1: "どこから新しい{2つのフィールドを選択する" "、クエリ2:"どこからでも選択{5つのフィールド} ".. –

関連する問題