0

データグリッド形式のショッピング カートの数量変更に使用するテキスト ボックスがあります。編集リンクボタンをクリックすると、テキストボックスを変更できます。私が取得しようとしているのは、dataTable の元の数量を置き換えるための変更されたテキストです。いろいろ試してみましたが、変更した値を保持できません。

最終的に dataTable を変更するコードは次のとおりです。

       For Each objDR In myDataTable.Rows
        If objDR("ItemID") = intItemID Then
            objDR("Quantity") = Int32.Parse(myText) 'adding a specific int like 333 works
            Exit For
        End If
        Next

前述のように、「333」などの特定の値を入力すると、数量が変わります。そのため、更新をクリックしたときにテキストボックスの値が保持されないことに問題があるか、少なくともそれが私の見方です。

私が試したテキストボックスのテキストにアクセスするためのコード:

    Dim myText As String
    For Each dataGridItem As DataGridItem In dgCart.Items
        myText = CType(dataGridItem.FindControl("txtQuantity"), TextBox).Text
       'myText = DirectCast(dataGridItem.FindControl("txtQuantity"), TextBox).Text
    Next

    have also tried
    'Dim strQuantity As String = CType(dgCart.Items(0).FindControl("txtQuantity"), TextBox).Text

     'Dim txtQuantity As TextBox = e.Item.FindControl("txtQuantity")

また、txtbox のビューステートをいじってみましたが、違いはありません。

これを修正するにはどうすればよいですか?

4

1 に答える 1

0

editCommandまたは update イベントが必要かどうかわかりません。コメントのリンクから:

Dim tb As TextBox = CType(e.Item.Cells(3).Controls(0), TextBox)
于 2013-03-20T19:27:30.687 に答える