0

ASPXページ:

<asp:ListView ID="lvSubjects" runat="server" >
        <LayoutTemplate>
        <asp:PlaceHolder ID="itemPlaceholder" runat="server" />
        </LayoutTemplate>
        <ItemTemplate>
            <asp:CheckBox ID="cbRegularSubjects" Text=<%# Eval("SubjectName") %> runat="server" />

        </ItemTemplate>


        <AlternatingItemTemplate>
        <asp:CheckBox ID="cbRegularSubjects" Text=<%# Eval("SubjectName") %> runat="server" />
        </AlternatingItemTemplate>
        </asp:ListView>

コードビハインド:

For Each ctrl As Control In Page.Controls
            If TypeOf ctrl Is CheckBox AndAlso CType(ctrl, CheckBox).Checked Then
                '**Here I want to get the text of the check box and insert into the DB**
            End If


       Next

どこが間違っているのですか??エラーは発生しません...しかし、このコードは機能しません。

4

2 に答える 2

0

あなたはPage.Controlsでのみ検索していますが、チェックボックスはページコントロール階層の奥深くにあります。

foreach (ListViewItem row in listView.Rows)
{
  if (row.ItemType == ListViewItemType.DataItem)
  {
    CheckBox chk = row.FindControl("Checkboxid");
    if  (chk.Checked)
    {
     //Write code to store this checkbox value to database here
    }
   }
  }

VB のコードを適切なコントロール名に変更してください

于 2012-04-14T04:48:38.887 に答える
0
For i As Integer = 0 To lvSubjects.Items.Count - 1
            Dim coll As ControlCollection = lvSubjects.Items(i).Controls
            For Each c As Control In coll
                If TypeOf c Is CheckBox Then
                    Dim box As CheckBox = CType(c, CheckBox)
                    If box.Checked Then
                        MsgBox(box.Text)
                    End If
                End If
            Next c
        Next i
于 2012-04-14T05:36:51.607 に答える