- PR -

テーブル(行)の動的追加と削除について

1
投稿者投稿内容
BELL
会議室デビュー日: 2005/07/13
投稿数: 11
投稿日時: 2007-07-09 10:26
 ボタンを押した毎に指定したテーブルに対して動的に行を追加したいと
 思い下記のプログラムを記述しました。

 -------------------------------------------------------------------
Dim intI As Integer
Dim myRow As New TableRow

Dim myCell_DEL As New TableCell
Dim myCell_CODE As New TableCell
Dim myCell_SHOHIN As New TableCell
Dim myCell_SURYO As New TableCell

ReDim Preserve btnDel1(Me.tblShohin.Rows.Count + 1)

intI = Me.tblShohin.Rows.Count

'削除ボタン追加
btnDel1(intI) = New System.Web.UI.WebControls.Button
btnDel1(intI).Text = "削除"
btnDel1(intI).ID = intI
btnDel1(intI).Attributes("onclick") = "return confirm('選択した行を削除しても宜しいですか?');"

AddHandler btnDel1(intI).Click, AddressOf Me.btnDel_Click

myCell_DEL.Controls.Add(btnDel1(intI))
myCell_DEL.HorizontalAlign = HorizontalAlign.Center
myCell_DEL.BorderWidth = Unit.Pixel(1)
myRow.Cells.Add(myCell_DEL)

'コード
myCell_CODE.Text = Me.cboShohin.SelectedValue
myCell_CODE.HorizontalAlign = HorizontalAlign.Center
myCell_CODE.BorderWidth = Unit.Pixel(1)
myRow.Cells.Add(myCell_CODE)

'商品
myCell_SHOHIN.Text = Me.cboShohin.SelectedItem.Text
myCell_SHOHIN.HorizontalAlign = HorizontalAlign.Left
myCell_SHOHIN.BorderWidth = Unit.Pixel(1)
myRow.Cells.Add(myCell_SHOHIN)

'数量
myCell_SURYO.Text = Me.txtShukkoSu.Text
myCell_SURYO.HorizontalAlign = HorizontalAlign.Center
myCell_SURYO.BorderWidth = Unit.Pixel(1)
myRow.Cells.Add(myCell_SURYO)


Me.tblShohin.Rows.Add(myRow)

-----------------------------------------------------------

  上記ソースですと1回目のボタンクリック時は行が追加されるのですが、
  2回目のクリックは1行目に上書きされてしまいます。

  また、削除ですが、動的に作成した削除ボタンに登録されているIDを
  基に削除をしたいと考えております。

  行とIDが同じ場合はRemoveatで消すことが出来ると思いますが、
  1行消した後は行とIDの関係が崩れてしまう為に良い方法が無いかと
  思っております。

 開発環境は下記の通りです。
  VS2005(VB)
  UpdatePanelの中にWebControllのTableを設置
  (AJAXアドインを使用しております)
  また、ロード時にPage.MaintainScrollPositionOnPostBack = Trueを設定しております。

 お手数をおかけいたしますがご指導の程よろしくお願い申し上げます。
1

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