JQuery やその他の Javascript ライブラリの使用を提案している人を知っています。一般的なグリッドビューなどを使用しようとしています。これは私の学習段階であるため、上級ユーザーにとっては非常に基本的な質問になる可能性があることをお知らせください.
3 に答える
MVC で実際の WebForms コントロールを使用することはできません (可能であれば少なくとも使用すべきではありません)。これが実際にあなたにとって学習経験である場合は、これらのことを行うための新しい方法をいくつか学習した方がよいでしょう.
最も単純に言えば、データのテーブルを表示したいだけであれば、そのデータをモデル内のオブジェクトとして持つことになります。たとえば、次のテーブルが必要な場合Customers
、モデルには次のようなプロパティがあります。
public IEnumerable<Customer> Customers { get; set; }
Customer
議論のために、 aには aName
とAddress
プロパティがあるとしましょう。次に、ビューで、テーブルのそれらを単純にループします。
@foreach (var customer in Model.Customers)
{
<tr>
<td>@customer.Name</td>
<td>@customer.Address</td>
</tr>
}
そこから始めて、より多くの機能を適切に構築できます。たとえば、テーブル内の各レコードには、それを「編集」するためのリンクが必要になる場合がありますCustomer
。次に、おそらく顧客のID
プロパティを使用して、対応する編集アクションへのリンクを作成します (ここでも、議論のために、そこにあると仮定します)。
@foreach (var customer in Model.Customers)
{
<tr>
<td>@customer.Name</td>
<td>@customer.Address</td>
<td>@Html.ActionLink("Edit", "Customers", "Edit", new { id = customer.ID }, null)</td>
</tr>
}
(使用できるメソッドにはActionLink
さまざまなオーバーロードがあります。)
これを作成すると、これのクライアント側レンダリングが実際にどれほど単純であるか (または単純であるべきか) をよりよく理解できるようになり、Web フォームで一般的に行われるよりも、一般的に HTML をより実践的に使用できるようになります。この道をたどっていくと、非常に強力なクライアント側プラグインを使用するのがずっと簡単になることがわかります (たとえば、テーブル用の jQuery プラグインはたくさんあります) 。ページング、ソートなどは、AJAX 呼び出し (MVC でサーバー側を記述するのは簡単です) を介して、または最初のページの読み込みとクライアント側のページング/ソート/フィルタリングですべてのデータをレンダリングするだけで、よりクリーンになります。 .
この質問を見てみたいと思うかもしれません: ASP.NET MVC のグリッド コントロール?
推奨事項のリクエストであるために建設的ではないとして閉じられましたが、チェックアウトしたいデータグリッドオプションが多数推奨されていることは確かです.
しかし、要するに、ASP.NET MVC は、複雑なコンポーネントをドラッグ アンド ドロップするという WebForms の設計哲学を実際には共有していません。それがあなたの求めているものでない場合は、WebForms を使い続ける方がよいかもしれません。
ユーザーに情報を表示したり、ユーザーからデータを収集したりする HTML 要素は、単純なものと複雑なものに分類できます。TextBox、ComboBox などの単純な要素には ASP.NET MVC の HtmlHelper があるため、開発者が GridView などの複雑な要素に対して HtmlHelper を探すのは合理的です。ページング、フィルタリング、グループ化などを行う必要があるため、複雑です。ASP.NET MVC を使用した最後のプロジェクトでは、そのうちの 1 つを使用する必要があり、2 つの素晴らしいライブラリを見つけました。
どちらもオープン ソースで効率的ですが、シンプルでよく設計され、構成が簡単な最初の方法を好みます。