- - PR -
GridViewを最初から編集できるようにしたい
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-02-24 13:09
お世話になっております。
早速ですが、表題の件で何方かご教授願えないでしょうか。 VS2005を使用してWebのGridViewをカスタマイズしているのですが、考えていることが実現できません。 やりたいことは以下の内容です。 1.GridViewにTextBoxを表示させて、バインドしたDataTableの内容を編集したい。 2.同じくCheckBoxを表示させて、バインドしたDataTableの内容(true,false)を変更したい。 分かる範囲で以下のコードを書いてみました。 以下、GridViewの定義です。 <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" OnPageIndexChanging="GridView1_PageIndexChanging"> <Columns> <asp:BoundField DataField="code" /> <asp:BoundField DataField="name" /> <asp:TemplateField> <ItemTemplate> <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("note") %>' OnTextChanged="TextBox1_TextChanged" AutoPostBack="True"></asp:TextBox> </ItemTemplate> </asp:TemplateField> <asp:CheckBoxField DataField="flag" /> </Columns> </asp:GridView> 以下、GridViewにDataTableをバインドしています。 // GridViewに表示する為のデータテーブルを作成します。 DataTable dt = new DataTable(); dt.Columns.Add(new DataColumn("number", typeof(int))); dt.Columns.Add(new DataColumn("code", typeof(string))); dt.Columns.Add(new DataColumn("name", typeof(string))); dt.Columns.Add(new DataColumn("note", typeof(string))); dt.Columns.Add(new DataColumn("flag", typeof(bool))); dt.Rows.Add(new object[] { 1, "7000001", "名称あ2行目3行目", "あああああああああ", true }); dt.Rows.Add(new object[] { 2, "7000002", "名称い2行目3行目", "", false }); dt.Rows.Add(new object[] { 3, "7000003", "名称う2行目3行目", "いいいいいいいいい", true }); dt.Rows.Add(new object[] { 4, "7000004", "名称え2行目3行目", "ううううううううう", false }); dt.Rows.Add(new object[] { 5, "7000005", "名称お2行目3行目", "えええええええええ", true }); dt.Rows.Add(new object[] { 6, "7000006", "名称か2行目3行目", "おおおおおおおおお", false }); dt.Rows.Add(new object[] { 7, "7000007", "名称き2行目3行目", "かかかかかかかかか", true }); dt.Rows.Add(new object[] { 8, "7000008", "名称く2行目3行目", "ききききききききき", false }); dt.Rows.Add(new object[] { 9, "7000009", "名称け2行目3行目", "くくくくくくくくく", true }); dt.Rows.Add(new object[] { 10, "7000010", "名称こ2行目3行目", "けけけけけけけけけ", false }); // GridViewのデータソースを指定します。 this.GridView1.DataSource = dt; this.GridView1.DataBind(); ここまで書いてみて、どうしても出来ないのが、 1.ItemTemplateに置いてあるTextBox1の内容を取得できず、バインドしたDataTableに反映できない。 2.CheckBoxFieldを追加して、チェックボックスは表示できたのですが、その編集が出来ず、当然DataTableに反映も出来ない。 ということです。 どなたか、よろしくお願いします。 | ||||
|
投稿日時: 2006-02-26 03:45
DataGridと同様に
という形式で入力値が取れました。 動作確認に使用したコードを置いておきますので、参考にしてみてください。 http://www.spoon.mydns.jp/net/test/GridViewInline/code.html | ||||
|
投稿日時: 2006-02-26 08:23
こちらにライブデモ用のサンプルを用意しましたので参考にしてください。
http://aspspider.net/AkioKasai/Goto.aspx?id=060226-1 VB.NET ⇒ C#.NETへの変換は↓から行ってください。 http://carlosag.net/Tools/CodeTranslator/Default.aspx _________________ ASP.NET+Ajaxサンプル集 | JavaScript+Ajaxサンプル集 | ||||
|
投稿日時: 2006-02-27 09:00
masakazu様、Access様、回答ありがとうございます。
お陰様で目的のコードを書くことが出来ました。 お二人のサンプルコードは大変参考になりました。 本当にありがとうございました。 |
1