GridViewのデータソースに二次元配列を簡単に設定する方法は?

このQ&Aのポイント
  • VisualStudio2005で開発をしているASP.NETのプロジェクトで、DBからデータを抽出し、編集したデータをGridViewを使って表示させたいと思っています。
  • Excelにデータを出力するために、データをDataTableで取得した後に、二次元配列に編集しています。
  • しかし、編集した二次元配列をGridViewのデータソースに簡単に設定する方法がわかりません。どのようにすれば良いでしょうか?
回答を見る
  • ベストアンサー

GridViewのデータソース

VisualStudio2005で開発をしています。 ASP.NETでDBからデータを抽出し、そのデータを少し編集し、画面に表示とExcelにデータを出力しています。 Excelに出力をする関係上、データをDataTableで取得した後に、二次元配列に編集をしています。その配列に編集したデータをGridViewを使って表示させようかと思っています。 二次元配列の値を簡単にGirdViewのデータソースに設定することはできるのでしょうか? 二次元配列ではなくDataTableに編集してもよかったのですが、そうするとExcelに出力するのが行数分Loopさせなければならなくなるようなので・・・。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • kero_mio
  • ベストアンサー率90% (94/104)
回答No.1

2次元配列を直接操作できるDataSourceはありませんので、 DataSourceを2種類作るしかないと思います。 1つが、GridView全体に対する(行に対する)DataSource、 もう1つが、セル(列)に対するDataSourceをItemTemplateに 配置します。 イメージ的には、 http://www.dotnetcurry.com/ShowArticle.aspx?ID=221&AspxAutoDetectCookieSupport=1 のサンプルみたいな感じだと思っています。 宜しくお願いします。

参考URL:
http://www.dotnetcurry.com/ShowArticle.aspx?ID=221&AspxAutoDetectCookieSupport=1
Petit-Chat
質問者

お礼

返事が遅くなってしまってすみません。 なんだかできそうな気がします! 今、家のパソコンで見ているので試すことができないので、明日職場に行って試してみたいと思います! ありがとうございましたm(_ _)m

関連するQ&A

  • GridViewの項目編集(初歩)

    いわゆるレガシー言語専門の技術者です。 事情があって、ASP.NETとVisualStudio2008(C#)でWebアプリを知人から頼まれて作っています。 クライアント/サーバ型のシステム開発歴は長いのですが、Web系は全くと言って良いほど経験がありません(個人商店のホームページを作ったくらいです)。 要件は以下のようになります。 検索条件を入力 →DBのマスタ検索 →対象データをGridViewに一覧表示 →項目を直接編集  ※解説サイトによくある、GridViewにボタンが配置してあって、ボタン押下で編集モードに移行する動きはNGです。あくまでも直接編集できなければいけません。 →入力後、更新ボタン押下により、画面情報でDB一括更新 この、GridViewの項目を直接編集するには、何というコントロールを使い、データベースと連動させるにはどうすれば良いのかが、さっぱりわかりません。 自力で頑張ってみたのですが、DBの値をGridViewに表示するには、asp:BoundField を使い、DataField にDBの項目名を指定すれば「表示」はされるところまでは確認できました。 ただ、これだと「編集」が出来ない...どうやら、asp:TemplateField というものを使うようだが、DBとバインドさせる方法は?編集可能にするには? ネットで色々と調べたのですが、(理解力が低いせいもあり)そのものズバリな表現で説明しているサイトは殆どなく、頭がパニックで力が尽きてしまいそうです。 私はWeb開発には向いていないのかも知れませんが、諸事情により、今回は何としてもやり遂げないといけません。 どなたか助けてください、よろしくお願いします。

  • ASP.NET GridViewの表示

    お世話になります。 環境:Oracle10g、VisualStudio2005 ASP.NET(VB)、Winxp ASP.NETでのWEBサイト構築は初めてで、わからないことだらけ で試行錯誤しております。 GridViewでObjectDataSourceを使用し、データ表示をしたい のですが、ビジネスオブジェクトの選択で、リストボックス に選択項目が表示されません。リストボックスに選択項目と して表示される条件を教えて頂きたいです。 xsdファイルにDataTableとDataAdapterを作成しクエリを設定 するところまでやりました。 情報不足等あれば追記致しますので、宜しくご教授お願い致 します。

  • ASP.NET GridView につきまして

    ASP.NET GridView につきまして質問があります。 よろしくお願いいたします。 SQL Server にあるデータを使用して、GridView を作成しております。 あるBit型フィールドがあるのですが、NULLの場合は 無、1の場合には 有 と GridView内に表示させたいのですが、GridViewの項目はバインドされているフィールドしか表示させることができないのでしょうか? 非連結の項目を追加して どこかのプロパティに =IIf([CheckChoku]=True,"有","無") を記述すれば、表示できるような方法を探しています。 すみません ASP.Net は始めたばかりなので、VB や Access のような操作が応用できればなと思っております。もしくは SQL のデータソースを作成するときに上記を埋め込んでソースにしないと実現できないものでしょうか? ご教授いただければ 大変助かります。 よろしくお願いいたします。

  • .NETのGridViewでテストデータの投入方法

    Microsoft Visual Studio 2008を使用しています。 ASP.NETのGridViewで、データソースを使用せずにテストデータを投入する方法を教えて下さい。 情けないくらいの初心者です。どうか助けてください。 表示だけを確認して画面整形したいので、データ部に『12345』などのテストデータを投入して表示させたいのですが、そのやり方が分かりません。 GridView自体の設置と、列の追加までは出来ています。が、肝心のデータを入れられないためにプレビューしても真っ白になってしまいます。 検索して調べた結果、ダミーのデータテーブルを作成してバインドする方法があったのですが、それをどこに書けばいいのか、また、関数名??をどうしたらいいのかが分かりません。 失礼ながら拾ったソースをそのまま拝借すると… DataTable table = new DataTable(); table.Columns.Add("data1"); table.Columns.Add("data2"); DataRow row1= table.NewRow(); row1["data1"] = "value1-1"; row1["data2"] = "value1-2"; table.Rows.Add(row1); DataRow row2 = table.NewRow(); row2["data1"] = "value2-1"; row2["data2"] = "value2-2"; table.Rows.Add(row2); GridView1.DataSource = table; GridView1.DataBind(); これを、vbの方に記述すればいいのでしょうか? また、function名といいますか、sub名?をどうしたらいいのかがわかりません。。 デザイン画面上でダブルクリックして自動生成されるソースだと Protected Sub GridView1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles GridView1.SelectedIndexChanged End Sub になるので、ちょっと違う気がします・・。 上の拝借したソースよりも、もう少し分かりやすく記述していただけると大変嬉しいです・・。 本当に本当に初心者で申し訳ありません!!! とても困っているので、どうか助けてください、宜しくお願い致します!

  • ASP.NET 2.0 GridViewの更新ボタンについて

    いつもお世話になっています。 GridViewでItemTemplateでGridViewの中にボタンを作っています。 それで、編集ボタンを押して、データを書き換え更新ボタンを押すのですが、更新されません。 どこか間違っていじったのかもしれません。ここじゃないかと思うところありましたら、回答お願いします。 (更新ボタンのCommandNameはUpdateになっています。) <<環境>> Client:Vista Server:Server2003 VisualStudio2005 SP1

  • ASP.NET GridView の二列表示

    ASP.NET GridView につきまして質問があります。 よろしくお願いいたします。 SQL Server にあるデータを使用して、GridView を作成しております。 普通にGridViewを作成すると すべて横一列で表示されてしまいます。 例えば項目列が沢山あると、画面を横スクロールしなくてはすべてが見えなくなってしまいます。 なるべく1画面ですべてを見渡せるようにしたいのですが、そのためには GridView での1データを2列表示にできればよいのではないかと思うのですが、 2列表示にできるのでしょうか? ご教授いただければ 大変助かります。 よろしくお願いいたします。

  • GridViewの集計

    お世話になります。 現在、ASP.NETの勉強をしております。 今回、Access2000で作成したPG(帳票)をASP.NETに移行する作業をしております。 Access2000では以下のようにグループ単位の集計をしていました。 ASP.NETで以下の様に出力する場合はどのようにすれば良いのでしょうか? グループ 商品 金額 A xxx1 100 xxx2 200 合計 300 B xxx1 10 xxx2 20 合計 400 考えている方法は (1)グループの数だけ、GridViewを作成する。 (2)1つのGridViewをコード上で編集し、グループ単位に集計する。 です。 他に良い方法などあれば、教えて頂けると幸いです。 よろしくお願い致します。

  • ASP.NET GridView 一致した行のみ表示

    ASP.NET .NETはver3.5を使用 GridViewにDBのテーブルを反映させることは出来るのですが、そこから特定の行を絞って表示させる方法がわかりません。 例えば名前という列が存在する場合、名前が「佐藤」の行のみ表示させる方法です。 どのようにすればよろしいでしょうか。

  • gridviewのスクロールバーを非表示にしたい

    以下のとおりgridviewを表示し、データが存在する時は右スクロールバーが使用できるようにしています。 データ件数が0件の時は"データなし"と表示するのですが、 この時、スクロールバーを非表示するにはどうすればよいのでしょうか? <div class ="conditionpart2"> <table class="condition"> <tr style="text-align:left;"> <td> <asp:UpdatePanel ID="UpdPlView" runat="server" UpdateMode="Conditional"> <ContentTemplate> <C1GridView:C1GridView ID="grdList" runat="server" AutoGenerateColumns="False" DataSourceID="sqldsList" VisualStylePath="~/Common/css/CmpOne" VisualStyle="Office2007Blue" UseEmbeddedVisualStyles ="False" AllowSorting="True" SelectionMode="None" EmptyDataText = "データなし" ClientOnColumnWidthChanged="c1GridView_widthChange" AllowColMoving="true" AllowColSizing="true" CellPadding="0" CellSpacing="0" DataKeyNames="CODE" Height="540px" Width="1203px" ScrollSettings-ScrollMode="ScrollBar" ScrollSettings-ScrollOrientation="Vertical" > <ScrollSettings ScrollMode="ScrollBar" /> <HeaderStyle HorizontalAlign="Center" CssClass="headerStyle" /> <EmptyDataTemplate> <asp:label CssClass="lblNoData" id="lblNoData" runat="server">データなし</asp:label> </EmptyDataTemplate> <EmptyDataRowStyle VerticalAlign="Middle" HorizontalAlign="Center" Height="500px" /> <RowStyle Height="24px" /> <Columns> <C1GridView:C1BoundField HeaderText="コード" DataField="CODE"> <ItemStyle Width="80px"></ItemStyle> </C1GridView:C1BoundField> <C1GridView:C1BoundField HeaderText="品名" DataField="NAME"> <ItemStyle Width="850px"></ItemStyle> </C1GridView:C1BoundField> </Columns> </C1GridView:C1GridView> </ContentTemplate> <Triggers> <asp:AsyncPostBackTrigger ControlID="ddlCode" EventName="SelectedIndexChanged" /> </Triggers> </asp:UpdatePanel> </td> </tr> </table> </div>

  • GridViewにグループ化して表示させたい

    ASP.NETの勉強のためにチームのメンバーを管理する ページを作っています。 VisualWebDeveloper2008のVBで作っています。 DBにはチーム名とチームの所属メンバーとメンバー一覧の3テーブルがあります。 これらをJOINしてGridViewに表示させたいと思います。 検索結果ではAチームに3人いる場合、3レコード取得されます。 画面に表示させるときには1レコードでメンバーの列だけ3行にしたいと思います。 Templateを指定するとできそうな気がするのですが、メンバーを検索するデータソースの条件にその行のチームコードを指定する方法が分かりません。 よろしくお願いします。

専門家に質問してみよう