C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: ArrayListをDataGridにバインドするには


(過去ログ 17 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■6965 / inTopicNo.1)  ArrayListをDataGridにバインドするには
  
□投稿者/ じゃかるた (71回)-(2007/08/28(Tue) 09:45:11)

分類:[ASP.NET (C#)] 

VS2003

ArrayListをDataGridにバインドする方法がわかりません。

ArrayListの中身はstring配列です。
ArrayList[0]={ string[0]="山本",string[1]="経理" }
ArrayList[1]={ string[0]="佐藤",string[1]="営業" }
ArrayList[2]={ string[0]="田中",string[1]="企画" }

この情報をヘッダーが「名前」「所属」のDataGridに表示したいと思っています。
DataGridは表示だけでソートや選択といった操作は入らなくてもよいです。

参考になるページを見つけることができませんでした。
よろしくお願いします。
引用返信 編集キー/
■6971 / inTopicNo.2)  Re[1]: ArrayListをDataGridにバインドするには
□投稿者/ ぼのぼの (70回)-(2007/08/28(Tue) 11:19:38)
MSDNを見ながら勘でいろいろ試してたらこんなんでいけました。

<asp:DataGrid id="DataGrid1" runat="server" AutoGenerateColumns="False">
  <Columns>
    <asp:TemplateColumn HeaderText="名前">
      <ItemTemplate>
        <%# ((string[])Container.DataItem)[0] %>
      </ItemTemplate>
    </asp:TemplateColumn>
    <asp:TemplateColumn HeaderText="所属">
      <ItemTemplate>
        <%# ((string[])Container.DataItem)[1] %>
      </ItemTemplate>
    </asp:TemplateColumn>
  </Columns>
</asp:DataGrid>

引用返信 編集キー/
■6972 / inTopicNo.3)  Re[2]: ArrayListをDataGridにバインドするには
□投稿者/ ぼのぼの (71回)-(2007/08/28(Tue) 11:33:51)
蛇足ですが、データの容れ物としてはArrayList+string[]よりDataTableの方がオススメです。
前者だとインデクスでしかアクセスできないので、後で途中に列が追加になった時、
順番が全部ずれちゃいますが、DataTableだと名前でアクセスできますからね。

DataTable tbl = new DataTable();
tbl.Columns.Add("名前", typeof(string));
tbl.Columns.Add("所属", typeof(string));
tbl.Rows.Add(new string[] {"山本", "経理"});
tbl.Rows.Add(new string[] {"佐藤", "営業"});
tbl.Rows.Add(new string[] {"田中", "企画"});

引用返信 編集キー/
■6973 / inTopicNo.4)  Re[2]: ArrayListをDataGridにバインドするには
□投稿者/ じゃかるた (72回)-(2007/08/28(Tue) 11:35:11)
No6971 (ぼのぼの さん) に返信
> MSDNを見ながら勘でいろいろ試してたらこんなんでいけました。

できました!
コードまで提示していただきありがとうございます。
半分あきらめていたので大変うれしいです。感謝します。
解決済み
引用返信 編集キー/
■6974 / inTopicNo.5)  Re[3]: ArrayListをDataGridにバインドするには
□投稿者/ じゃかるた (73回)-(2007/08/28(Tue) 11:36:49)
No6972 (ぼのぼの さん) に返信
> 蛇足ですが、データの容れ物としてはArrayList+string[]よりDataTableの方がオススメです。
> 前者だとインデクスでしかアクセスできないので、後で途中に列が追加になった時、
> 順番が全部ずれちゃいますが、DataTableだと名前でアクセスできますからね。
>
> DataTable tbl = new DataTable();
> tbl.Columns.Add("名前", typeof(string));
> tbl.Columns.Add("所属", typeof(string));
> tbl.Rows.Add(new string[] {"山本", "経理"});
> tbl.Rows.Add(new string[] {"佐藤", "営業"});
> tbl.Rows.Add(new string[] {"田中", "企画"});

さっそく、ご指摘の方法に変更します。
重ねてお礼申し上げます。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -