WebFormっぽいコントロールベスト3
2012年12月10日 コメントを残す
0.前置き
この記事はOne ASP.NET Advent Calendar 2012の10日目のエントリーです。
9日目は、@miso_soup3さんの『ASP.NET MVC コア拡張部』でした。
ASP.NETならなんでもOKということで、WebFormの内容で書いてみます。
年末ですし(?)、個人的にWebFormといったらこのコントロールでしょベスト3をお送りしたいと思います。
別に基準はないのですが、自分が感心したとか、いかにもWebFormっぽいなというものを集めて発表します。
1. ランキング発表
第3位! 「Chart」
まずは第3位からです。
第3位は…Chartコントロールです!
Chartコントロールは、比較的新参者で、3.5から入ってきたものだと思います。
このコントロールを利用すれば、30種類以上のグラフを描画することができます。
サンプルではObjectDataSourceを利用して、データを取得し、折れ線グラフを書いてみました。
この程度のものであれば、コードなしでプロパティの設定のみで完成します。
aspx側のコードはこんな感じです。
<asp:Chart ID="SampleChart" runat="server" BorderlineWidth="3" DataSourceID="ChartObjectDataSource"> <Series> <asp:Series Name="Series1" ChartType="Line" IsValueShownAsLabel="True" MarkerStyle="Diamond" XValueMember="Year" YValueMembers="Income"> </asp:Series> </Series> <ChartAreas> <asp:ChartArea Name="ChartArea1"> </asp:ChartArea> </ChartAreas> <Titles> <asp:Title Name="Income" Text="年収"> </asp:Title> </Titles> </asp:Chart>
第2位!! 「ReportViewer」
では、続いて、第2位の発表。
ちょっとずるいですが第2位は…ReportViewerコントロールです!!
このコントロールは、SQL Serverの簡易BIツールSQL Server Reporting Services(以降、SSRS)のビューワー機能として提供されています。
Webアプリ上に、帳票やグラフを作りたい、エンドユーザーにも作れる環境(ReportBuilderというツールがある)を提供したいなどの要件にマッチします。
なおSSRSにはWebサーバが付属していますが、ちょっと使いにくいです。(たぶんFull IISじゃないです。)
そこで自分が作ったWebアプリとシームレスに接続するために、このReportViewerコントロールが活躍します。
SSRSについては、ここで語ると趣旨がずれてしまうので、自習書などをご参考にして下さい。
いつかこのブログでもちゃんと解説を書こうと思います。
- SQL Server 2012 自習書のReporting Services によるレポート作成 (上)~(下)
- Web サイト構築の手帖 Windows編 レポートサーバーの設定
SSRSとReportViewerコントロールを利用すると以下のようにSSRSのレポートが表示されます。
サンプルとして地図上に人口を表現したバブルチャートを書いてみました。
aspxは以下の通りです。
ScriptManagerが必要になるのでお忘れなく。
<asp:scriptmanager ID="Scriptmanager" runat="server"></asp:scriptmanager> <rsweb:ReportViewer ID="SampleReportViewer" runat="server" ProcessingMode="Remote" Height="600px" Width="750px"> <ServerReport ReportPath="/全社/関東地方の人口" ReportServerUrl="http://{SSRSサーバー名称}/reportserver" /> </rsweb:ReportViewer>
第1位!! 「GridView」
そして…第1位の発表です!
第1位は
…
…
…
GridViewコントロール!!!
やはりWebFormっぽいコントロールといったら、GridViewコントロールですね。
なんか便利そうだけど、癖のある感じとかWebFormっぽいです。
このコントロールは、データを表形式で表現するときに利用します。
GridViewコントロールを利用すれば、データに対する編集・削除、ページング、デザインの適用などをほとんど
プロパティベースでできます。作成した感じは下記の通りです。
aspxのコードは下のようになります。
<asp:GridView ID="SampleGridView" runat="server" DataSourceID="GridviewObjectDataSource" AllowPaging="True" AutoGenerateColumns="False" BackColor="#DEBA84" BorderColor="#DEBA84" BorderStyle="None" BorderWidth="1px" CellPadding="3" CellSpacing="2" PageSize="3"> <Columns> <asp:BoundField DataField="Year" HeaderText="年" SortExpression="Year" /> <asp:BoundField DataField="Money" HeaderText="年収" SortExpression="Money" /> <asp:CommandField ShowDeleteButton="True" ShowEditButton="True" ShowSelectButton="True" ButtonType="Button" /> </Columns> <FooterStyle BackColor="#F7DFB5" ForeColor="#8C4510" /> <HeaderStyle BackColor="#A55129" Font-Bold="True" ForeColor="White" /> <PagerStyle ForeColor="#8C4510" HorizontalAlign="Center" /> <RowStyle BackColor="#FFF7E7" ForeColor="#8C4510" /> <SelectedRowStyle BackColor="#738A9C" Font-Bold="True" ForeColor="White" /> <SortedAscendingCellStyle BackColor="#FFF1D4" /> <SortedAscendingHeaderStyle BackColor="#B95C30" /> <SortedDescendingCellStyle BackColor="#F1E5CE" /> <SortedDescendingHeaderStyle BackColor="#93451F" /> </asp:GridView>
2.最後に
というわけで、WebFormっぽいコントロールベスト3を発表してみました。
ざっと見てみましたが、豊富ですね。
もちろん使いどころには十分注意する必要がありますが、
特性などを把握すればとても効率的に開発が行えると思います。
このシーンでは、GridView。こういった使い方の時には、ListView。柔軟にしたいからSSRSと連携などなど。
もう少し視野を広げて、こういった特性のアプリケーションでは、WebForm。
こうゆう場合は、MVCみたいな使い分けができるとさらに良いですよね。
明日12月11日は、@neueccさんです~。