- - PR -
DataList内の各CheckBoxの状態を取得したいのですが
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2007-06-02 18:37
お世話になっております。
表題の件について、お知恵をお貸しください。 開発環境は、VB と ASP.net 2.0です。 指定数のチェックボックスをDataListにて展開しております。 数と、Label内容はDBに登録してあります。 DataListの訳は、「RepeatColumns」を利用したい為です。 更新ボタンがページにあり、 ユーザーが何にチェックを入れたか(複数可)をDBに保存したいのですが DataList内の各チェックボックスの状態を取得する方法が うまくいかず悩んでおります。 こちらの過去ログを参考に DataListイベントの ItemDataBound時に e.Item.ClientID で HiddenFieldに全て記入→ 更新時にFindContorol(取得した名前)で Text名とChecked状態を全て取得 しようとしたのですが FindContorolでNothingが返り、取得できません。 HTMLを開いてみると、確かに取得できた名前と同じIDが存在しています。 DataList名.FindContorol(取得した名前)などやってみたのですが 一向に上手くいきません。。。 お心あたりのある方、アドバイスを頂けませんでしょうか。 以下現在のコードを記入いたします。 DataList ID="dlstShouhin" 内CheckBox 元ID="shCheck" ===.aspx================================================= <asp:DataList ID="dlstShouhin" runat="server" RepeatColumns=4> <ItemTemplate> <asp:CheckBox ID="shCheck" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "CODENML") %>' Checked='<%# DataBinder.Eval(Container.DataItem, "CODEVAL") %>'/> </ItemTemplate> </asp:DataList> ===.aspx.vb================================================= <イベント> Private Sub dlstShohin_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataListItemEventArgs) Handles dlstShouhin.ItemDataBound hfShohinCodes.Value += e.Item.ClientID & "_shCheck" & "," End Sub <保存時> Private Function GetShohinCodes(ByVal conn As OracleConnection) As String If Len(hfShohinCodes.Value) > 0 Then Dim ary() As String = Split(Left(hfShohinCodes.Value, Len(hfShohinCodes.Value) - 1), ",") Dim str As String = "" Dim i As Integer Dim ck As CheckBox For i = 0 To UBound(ary) ck = CType(FindControl(ary(i)), CheckBox) ←**** ck = CType(dlstShouhin.FindControl(ary(i)), CheckBox)←**** ・ ・ ・ ****の箇所が、どちらもNothingになります。 aryの中身と、HTML内のIDは一致していました。 FindContorolの使い方が悪いのでしょうか。 どうぞよろしくお願いいたします。 <編集>×2 すみません、IDが別のを書いていたので編集しました。 [ メッセージ編集済み 編集者: MI 編集日時 2007-06-02 18:41 ] [ メッセージ編集済み 編集者: MI 編集日時 2007-06-02 18:59 ] |
|
投稿日時: 2007-06-02 19:54
すみません、自己解決しました。
生成されたIDではなく、元のIDで ck = CType(dlstShouhin.Items(0).FindControl("shCheck"), CheckBox) と探すと見つかりました。 お騒がせして申し訳ありません。 |
1