これは私の問題の非常に明確な説明ではありませんが、それをよりうまく説明する方法はわかりません。動的グリッドビューローのnamingContainer ID
私はPreInitで動的に作成するgridviewを持っています。このグリッドビューには、各行に動的にテキストボックスが追加されています。
私はボタンを押すたびに、グリッドビューのセルをループし、テキストボックスのテキストを取得し、データベースを更新します。
GridViewコントロールが作成されて初めて、行のUniqueIDのは、このようなものです: ctl03、ctl04、ctl05、ctl06(したがって、テキストボックスのID年代であるctl03 $ txt0等。)
初めて私がプッシュしますボタンをクリックすると、UniqueIDの行が同じであるため、FindControl(ID)メソッドでコントロールを見つけたり、Request.Form [txt.UniqueID]を使ってコントロールを見つけることができます。
ただし、最初に、ボタンを押すたびに、ClientIdの行がctl02、ctl03、ctl04、ctl05のように作成されます。テキストボックスを見つけることができず、テキストボックスに書き込まれたテキストをキャッチできません。私は、レンダリングされたHTMLコードを見ると、私はrowClientID年代は、まだ最初の作成したもの(ctl03、ctl04、ctl05、ctl06)と同じであることがわかり
誰でものROWIDは(命名理由を任意のアイデアを持っていますコンテナID)は最初の更新後に変更されますか?
ありがとうございます。
私が間違っていても、私たちがRequest.Formをキーとして送信しているUniqueIDではない場合は、私を修正してください。私はIDをテキストボックス(txt0と言う)に割り当てますが、レンダリング時にasp.netはプレフィックスを付けて、最初のIDを 'ctl00 $ CntntPlcHld $ ctl02 $ txt0'にします。ここで問題が発生します。最初のrowID = ctl03を取得しますが、2番目または3番目の更新ボタンを押すと、rowIDはctl02になります。興味深いのは、まだHTMLコードのctl03だということです。コードビハインドとHTMLレンダリングされたコードの2つのrowIDが一致しないので、私はテキストボックスのUniqueIDが間違っていて、その上のTextをキャッチできません。 – louip
@louipはいuniqueidはフォーム上のもので、これはレンダリングされたタグの名前です。 – Aristos