- - PR -
C#.net で DataGrid 使って ボタンカラム を!
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 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-06-27 19:31
そのままの記事があると思うのですが。。。
[ASP.NET]DataGridコントロールに選択ボタンを追加するには? | ||||||||
|
投稿日時: 2006-06-27 19:38
@ITのこの記事が参考になると思います
http://www.atmarkit.co.jp/fdotnet/dotnettips/078buttondg/buttondg.html | ||||||||
|
投稿日時: 2006-06-28 09:47
おはようございます。
これって、Webアプリでしょうか?Winアプリでしょうか? Winだと、DataGridでボタン表示は無理っぽいですね。 GrapeCityのUltraWinGrid(今は名前が変わっちゃったカナ?)なら Grid内にボタンも貼れますよ〜。 | ||||||||
|
投稿日時: 2006-06-28 09:57
そんなことはないと思います。 DataGridColumnStyle から派生した ButtonColumn を作れば可能でしょう。 そういう意味では、たとえば、ComboBox あたりも可能です。 それと、質問内容では明記されていませんが、質問内容は Web アプリケーションだと思います。 ("id", "リクエスト" などから推測しました) こちらに関しては、明確な回答がついていますので割愛します。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 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行目の物を持ってきたいのです。 お手数をおかけしますが、よろしくご教授のほどお願い致します。 | ||||||||
|
投稿日時: 2006-06-28 23:10
さらに 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
これも上の定義の意味が解れば解決できると思います。 | ||||||||
|
投稿日時: 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 ] |