2016-10-17 57 views
0

私は多くを検索しましたが、実際の回答はありません 問題は次のとおりです:動的に作成されたgridviewを追加し、動的に作成されたチェックボックスを追加しました。チェックボックスの状態(チェックかどうかは、i)は、チェックボックス に到達カント私と私は、チェックボックスCheckBoxを動的に作成する動的に作成されたGridView

を追加する方法の下に私のグリッドビューとコードを作成する方法である。このgreateのサイト

Dim MessagesTable As DataTable = Recipient.CreateInboxMessagesTable(LoginName, WhatToShow) 
    Dim Tbl As New DataTable 
    Dim Col As DataColumn 
    Dim Row As DataRow 

    Col = New DataColumn("ID", GetType(String)) : Tbl.Columns.Add(Col) 
    Col = New DataColumn("Select", GetType(String)) : Tbl.Columns.Add(Col) 
    Col = New DataColumn("Sender", GetType(String)) : Tbl.Columns.Add(Col) 
    Col = New DataColumn("Subject", GetType(String)) : Tbl.Columns.Add(Col) 
    Col = New DataColumn("ReceiveDate", GetType(String)) : Tbl.Columns.Add(Col) 
    Col = New DataColumn("Privacy", GetType(String)) : Tbl.Columns.Add(Col) 
    Col = New DataColumn("ImportanceLevel", GetType(String)) : Tbl.Columns.Add(Col) 
    Col = New DataColumn("JustDate", GetType(String)) : Tbl.Columns.Add(Col) 
    Col = New DataColumn("LastReplyID", GetType(String)) : Tbl.Columns.Add(Col) 
    Col = New DataColumn("Status", GetType(Integer)) : Tbl.Columns.Add(Col) 
    Col = New DataColumn("From", GetType(String)) : Tbl.Columns.Add(Col) 
    For Each TRow As DataRow In MessagesTable.Rows 
     Row = Tbl.NewRow 
     Row("ID") = TRow.Item("ID_Rec") 
     'Row("Select") = New CheckBox 
     Row("Sender") = Member.GetUserName(TRow.Item("From_Msg")) 
     Row("Subject") = TRow.Item("Subject_Msg") & " =+-+= " & Message.HTMLToText(TRow.Item("Body_Msg")) 
     Row("ReceiveDate") = Recipient.Convert24TimeTo12(TRow.Item("ReceiveDate_Rec")).Substring(11) 
     Row("Privacy") = TRow.Item("Privacy_Msg") 
     Row("ImportanceLevel") = TRow.Item("ImportanceLevel_Msg") 
     Row("JustDate") = TRow.Item("ReceiveDate_Rec") 
     Row("LastReplyID") = TRow.Item("LastReplyID_Msg") 
     Row("Status") = TRow.Item("Status_Msg") 
     Row("From") = TRow.Item("From_Msg") 
     Tbl.Rows.Add(Row) 
    Next 
    aGrid.DataSource = Tbl 
    aGrid.DataBind() 

に感謝を助けてください

For Each GVRow As GridViewRow In aGrid.Rows 
        Dim CB As New CheckBox 
     GVRow.Cells(1).Controls.Add(CB) 
    Next 
私は、チェックボックスの状態を取得しようとしましたが、それは

Protected Sub btnCompleted_Click(sender As Object, e As EventArgs) Handles btnCompleted.Click 
    For Each Row As GridViewRow In gvInbox.Rows 
     Dim cbSelect As CheckBox = DirectCast(Message.FindControlRecursive(Row, "CB"), CheckBox) 
     'If cbSelect.Checked = True Then 

     'End If 
    Next 
End Sub 

を働いていなかったか

、これはあなたの

+0

例外はありますか? – Sami

+0

いいえ、コードをトレースし、チェックボックスを取得できなかった場合は停止します – Ali

答えて

0

その特定のIDを使用して制御値を取り出すことができるように、設定した後(ID、AutoPostBackの)値を属性をチェックボックスのインスタンスを作成する必要がありますtemplateFieldとアイテムテンプレートをHTMLコードGridViewに追加すると、チェックボックスコントロールが表示されます。

<Columns> 
<asp:TemplateField HeaderText="Select"> 
<ItemTemplate> 
    <asp:checkbox ID="cbSelect" runat="server"/> 
</ItemTemplate> 
</asp:TemplateField> 
</Columns> 
0

に感謝するすべてのコードがよさそうです。しかし、IDなしでGridviewにCheckboxを追加しました。

For Each GVRow As GridViewRow In aGrid.Rows 
     Dim CB As New CheckBox 
     CB.ID = "chkRow" // Is the ID for checkbox 
     AddHandler CB.CheckedChanged, AddressOf CheckedChaged // Could add event to the checkbox 
     CB.AutoPostBack = True // make Autopostback to true to handle postback 
     GVRow.Cells(1).Controls.Add(CB) // then add your control to specific position 
Next 

あなたは私はで私の問題の解決策を見つけた

For Each row As GridViewRow In GridView1.Rows 
     If row.RowType = DataControlRowType.DataRow Then 
      Dim chkRow As CheckBox = TryCast(row.Cells(0).FindControl("chkRow"), CheckBox) //same ID to find that control 
      If chkRow.Checked Then 
       //Your Logic 
      End If 
     End If 
    Next 
+0

あなたの返信に感謝Rojalin Sahooに感謝します。 CheckboxにIDを追加しましたが、まだチェックボックスを取得できません – Ali

関連する問題