2016-10-17 2 views
0

나는 많은 검색을했지만 작동하지 않는 문제가 있음 : 동적으로 gridview를 만든 다음 동적으로 생성 된 checkbox를 gridview에 추가하고 추가 된 iam이 얻으려고 할 때 체크 박스 상태 (체크 여부) 내가 은 내가 체크 박스를 추가하는 방법을 아래에 내 격자보기 및 코드를 생성하는 방법이다이 greate 사이트CheckBox를 동적으로 만든 동적으로 생성 된 GridView

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에게 감사드립니다. 확인란에 ID를 추가했지만 여전히 확인란을 가져올 수 없습니다. – Ali

관련 문제