- 781 名前:nobodyさん mailto:sage [2010/02/02(火) 19:23:36 ID:???]
- >>780
Repeaterに <asp:TextBox ID="tbEditName" Columns="80" Text='<%# this.GetColumnData(Container, "Name")%>' runat="server" style="ime-mode: active;" OnFocus="this.select();" ></asp:TextBox> <asp:Button ID="DeleteButton" runat="server" Text="削除" CommandArgument='<%# this.GetColumnData(Container, "ID") %>' CommandName="Delete" OnClientClick="return confirm('削除しますか?');" /> <asp:Button ID="EditButton" runat="server" Text="編集" CommandArgument='<%# this.GetColumnData(Container, "ID") %>' CommandName="Edit" /> みたいにTextBoxとButtonを設置して、CommandArgumentに設定されたIDから、データベースのIDを取得できる ID取得したらRepeater内にあるコントロールをナメて、同じIDを持つ行を取得して、 その行にあるTextBoxから入力内容を取得して更新すればいい。 for (int i = 0; i < this.rptTikuMaster.Items.Count; i++) { RepeaterItem ri1 = this.repeater.Items[i]; TextBox tbEditName = (TextBox)ri1.FindControl("tbEditName"); int editedID = int.Parse(lblEditID.Text); if (editedID == ID) { //IDが一致したらデータを取得してSQLを更新する break; } } これはRepeater内にTextBoxを設置したパターンだけど、 別途Repeaterの外部にTextBoxを設置しておいて、 そこにRepeaterの編集ボタンを押した行のデータを表示させて、 編集さぜて保存するという方法もある。
|

|