- PR -

C#.net で DataGrid 使って ボタンカラム を!

投稿者投稿内容
どっとねっと?
会議室デビュー日: 2006/06/27
投稿数: 6
投稿日時: 2006-06-27 18:36
はじめまして。

目的は件名の通りです。

環境
WinXP
2003.net
FrameWork1.1


取得したデータがDataSetに入っている状態で、
このデータをBindを行い、DataGridに反映(?)しました。

このデータには、id name tel syozai syumi tokugi があり、
このうちid name telをDataGridで一覧表示し、nameをクリックしたら
詳細画面へ移動し、書式にそった個人別表示を行いたいです。

で、今現在の作りを考えますと、nameに主キーとなっているidの値を振り分け、
詳細画面へidの値を渡さないといけないのです。

そこで、DataGridにボタンがつけられれば、値セットとリクエストはできそうなのですが、ボタンを付ける所でつまづいている感じです(;;

@it やほかのHPでも、リンク?としてならあったのですが、こちらはこちらで、&id=123の時123どうやってとるのかな?ってのと、リンクもつけられずに、ボタンに至りマシタ><;;

よろしく、ご教授いただければと思います。

宜しくお願い致します(><;;
深山
ベテラン
会議室デビュー日: 2006/05/09
投稿数: 66
お住まい・勤務地: 都内某所
投稿日時: 2006-06-27 19:31
そのままの記事があると思うのですが。。。
[ASP.NET]DataGridコントロールに選択ボタンを追加するには?
かるあ
ぬし
会議室デビュー日: 2003/11/16
投稿数: 1190
お住まい・勤務地: センガワ→ムサシノ
投稿日時: 2006-06-27 19:38
@ITのこの記事が参考になると思います
http://www.atmarkit.co.jp/fdotnet/dotnettips/078buttondg/buttondg.html
ベテラン
会議室デビュー日: 2005/05/16
投稿数: 85
お住まい・勤務地: 千葉県在住
投稿日時: 2006-06-28 09:47
おはようございます。

これって、Webアプリでしょうか?Winアプリでしょうか?

Winだと、DataGridでボタン表示は無理っぽいですね。
GrapeCityのUltraWinGrid(今は名前が変わっちゃったカナ?)なら
Grid内にボタンも貼れますよ〜。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-06-28 09:57
引用:

梶さんの書き込み (2006-06-28 09:47) より:

Winだと、DataGridでボタン表示は無理っぽいですね。


そんなことはないと思います。

DataGridColumnStyle から派生した ButtonColumn を作れば可能でしょう。
そういう意味では、たとえば、ComboBox あたりも可能です。

それと、質問内容では明記されていませんが、質問内容は Web アプリケーションだと思います。
("id", "リクエスト" などから推測しました)

こちらに関しては、明確な回答がついていますので割愛します。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
どっとねっと?
会議室デビュー日: 2006/06/27
投稿数: 6
投稿日時: 2006-06-28 10:37
おはようございます。
沢山の返信ありがとうございます。

深山様、かるあ様。

http://www.atmarkit.co.jp/fdotnet/dotnettips/078buttondg/buttondg.html
[ASP.NET]DataGridコントロールに選択ボタンを追加するには?

上記、リンク情報ありがとうございます。

こちらのページも参考にしたのですが、私の理解度が低い為か理解できませんでした。(;;

現状としましては、
デザインビュー?からDataGridを配置し、ソースは以下のようになっております。

DataSet DS
DataSet KensakuDS

DS 元の全データから検索条件にヒットした物。
DSの中から表示に必要な物をKensakuDSに追加。
(突込みどころ満載かもしれませんが、現状このような感じです)

//テーブルをDataSetに作る。カラムを作る。
KensakuData = KensakuDS.Tables.Add(TableName);
KensakuData.Columns.Add("IdNo", Type.GetType("System.String"));
KensakuData.Columns.Add("Name", Type.GetType("System.String"));
KensakuData.Columns.Add("Tel", Type.GetType("System.String"));

//見出し作成
newRow = KensakuDS.Tables[TableName].NewRow();
newRow["IdNo"] = "I  D";
newRow["Name"] = "名  前";
newRow["Tel"] = "電話番号";
KensakuDS.Tables["KensakuData"].Rows.Add(newRow);

//取得した件数文まわす
for(int i = 0; i < DS.Tables[TableName].Rows.Count; i++)
{
newRow = KensakuDS.Tables["KensakuData"].NewRow();
newRow["IdNo"] = DS.Tables[TableName].Rows[i]["IdNo"].ToString();
newRow["Name"] = DS.Tables[TableName].Rows[i]["Name"].ToString();
newRow["Tel"] = DS.Tables[TableName].Rows[i]["Tel"].ToString();
KensakuDS.Tables[TableName].Rows.Add(newRow);
}

this.DataGrid1.DataSource = KensakuDS.Tables[TableName];
this.DataGrid1.DataBind();

このようになっており、@itの記事の
<asp:DataGrid ……>
<Columns>
<asp:ButtonColumn
Text="選択"
CommandName="select"
ButtonType="PushButton"
HeaderStyle-Wrap="false"
HeaderText="行選択" />
……
</Columns>
</asp:DataGrid>

を、どこにどのように追加すればいいのかわかりませんでした。(;;

また、追加の質問となってしまい、申し訳ないのですが、
今現状、見出しを1行目に自分で追加している形になっており、見づらいのです。
1行目 IdNo Name Tel
2行目 ID 名前 電話番号
3行目以降、検索結果データ表示。

これをどうにかして、列名の1行目の所に2行目の物を持ってきたいのです。

お手数をおかけしますが、よろしくご教授のほどお願い致します。
かるあ
ぬし
会議室デビュー日: 2003/11/16
投稿数: 1190
お住まい・勤務地: センガワ→ムサシノ
投稿日時: 2006-06-28 23:10
引用:

どっとねっと?さんの書き込み (2006-06-28 10:37) より:

デザインビュー?からDataGridを配置し、ソースは以下のようになっております。

このようになっており、@itの記事の
<asp:DataGrid ……>
<Columns>
<asp:ButtonColumn
Text="選択"
CommandName="select"
ButtonType="PushButton"
HeaderStyle-Wrap="false"
HeaderText="行選択" />
……
</Columns>
</asp:DataGrid>

を、どこにどのように追加すればいいのかわかりませんでした。(;;


さらに google で検索するといろいろ出てきますよね
http://www.google.co.jp/search?hl=ja&q=asp.net+datagrid+boundcolumn&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=lang_ja

引用:

また、追加の質問となってしまい、申し訳ないのですが、
今現状、見出しを1行目に自分で追加している形になっており、見づらいのです。
1行目 IdNo Name Tel
2行目 ID 名前 電話番号
3行目以降、検索結果データ表示。

これをどうにかして、列名の1行目の所に2行目の物を持ってきたいのです。

お手数をおかけしますが、よろしくご教授のほどお願い致します。


これも上の定義の意味が解れば解決できると思います。
どっとねっと?
会議室デビュー日: 2006/06/27
投稿数: 6
投稿日時: 2006-06-29 10:48
おはようございます。

かるあ様、返信ありがとうございました。

デザイン画面のHTMLの方に直接記述する事で対応できました。

つきましては、
<asp:BoundColumn DataField="title" HeaderText="タイトル"></asp:BoundColumn>
などの、要素?(DataFieldとか)の種類や、説明などが載ってるサイトをご存知でしたら、教えていただけないでしょうか?
(BoundColoumnに限らずで(><;; )

よろしくお願い致します。

[追記:連続投稿がちょっと気が引けたので;;]
(進展)
上記の要素については、HTMLの方で各タグの中でスペースを打つことにより、選べる一覧が表示されました。また、プロパティ部分にも表示されました。
選べる一覧から、なんの値を決めるのかというのは、エキサイト翻訳さんで、単語単位に翻訳してもらい、大体なんの設定値か知る事ができました。

(問題)

<asp:datagrid id="DataGrid1" style="Z-INDEX: 116; LEFT: 32px; POSITION: absolute; TOP: 184px"
runat="server" Width="784px" AutoGenerateColumns="false">
<AlternatingItemStyle BackColor="#DDDDFF"></AlternatingItemStyle>
<ItemStyle BackColor="#EEEEFF"></ItemStyle>
<HeaderStyle ForeColor="White" BackColor="#5522BB" HorizontalAlign="Center"></HeaderStyle>
<Columns>
<asp:ButtonColumn Text="詳細" ButtonType="PushButton" HeaderText="" HeaderStyle-Width="40">
<HeaderStyle Wrap="False" HorizontalAlign="Center"></HeaderStyle>
</asp:ButtonColumn>
<asp:BoundColumn DataField="name" HeaderText="名     前"></asp:BoundColumn>
<asp:BoundColumn DataField="tel" HeaderText="電 話 番 号"></asp:BoundColumn>
<asp:BoundColumn DataField="syozai" HeaderText="所     在"></asp:BoundColumn>
</Columns>

と、する所まではできたのですが、ボタン押した時の動作がわかりませんでした(><;;
普通に使ってるボタンと同じようにソース部分で書けるだろうと予測していたのですが;;

[ボタンにidの値を付け、idの値を詳細ページの方に渡す]
という事がしたいです(><;;
idの値を割り振ろうと、ボタンカラムのところでDataFieldのプロパティを探したけど見つからず・・・どうやってやるんだぁ〜と、いう感じです。

お分かりの方で、教えていただける方がいましたらよろしくお願い致します。

以上です、よろしくお願い致します。

[ メッセージ編集済み 編集者: どっとねっと? 編集日時 2006-06-29 11:23 ]

スキルアップ/キャリアアップ(JOB@IT)