2016-07-06 5 views
0

안녕하세요. vb.net에서 DataGrid 컨트롤에 데이터를 채울 수있었습니다. 그러나 첫 번째 드롭 다운 목록에서 다른 회사를 선택하면 빈 행이 표시됩니다. 각 선택의 결과는 DataGrid의 모든 보고서를 출력하지만 회사에 적합한 보고서 만 표시하므로 적합하지 않은 보고서는 비어있게됩니다. 그러나, 나는 빈 행을 숨기는 방법에 붙어있다. 나는 다른 출처를 보았지만 아무런 효과가 없었다. 빈 행을 숨기려면 어떻게해야합니까?DataGrid에서 빈 행 숨기기

 Protected Sub DropDownList1_SelectedIndexChanged(sender As Object, e As EventArgs) 
    DropDownList2.Items.Clear() 

    'DropDownList2.Enabled = False 
    'DropDownList3.Enabled = False 
    'TextBox1.Enabled = False 

    If DropDownList1.SelectedIndex > 0 Then 
     Dim sConstr As String = ConfigurationManager.ConnectionStrings("ds17701ConnectionString").ConnectionString 
     Dim Conn As New SqlConnection(sConstr) 
     Dim ds As New DataSet() 
     Dim dt As New DataTable 
     Dim valsql As String = "" 
     Dim valsql1 As String = "" 
     Dim ds_Reports As New DataSet() 


     Dim parentitem As DataRow 
     Dim childitem As DataRow 

     'populates membership status once company selected 
     valsql = "SELECT [CompanyID], [CompanyName], [MemberTypeID], [MembershipStatus], [GroupID] FROM CompanyList WHERE COMPANYID = " & DropDownList1.SelectedValue 


     valsql1 = "SELECT REPORTID, REPORTNAME, REPORTCODE FROM REPORTLIST WHERE ReportVisible = 1" 
     valsql1 = valsql1 & ";SELECT c.ReportID, c.COMPANYID, rl.ReportName FROM CompanyReportListTable c, ReportList rl WHERE c.reportid = rl.ReportID and rl.ReportVisible = 1 and CompanyID = " & DropDownList1.SelectedValue 



     Using Conn 
      Conn.Open() 
      Dim comm As New SqlCommand(valsql, Conn) 
      Dim da As New SqlDataAdapter(comm) 'da serves as the new sqldataadapter for my sqlcommand 
      da.Fill(ds) 
      'da.Fill(dt) 

      da.SelectCommand.CommandText = valsql1 
      da.Fill(ds_Reports) 



     End Using 

     ds_Reports.Relations.Add("CompanyReport", ds_Reports.Tables(0).Columns("ReportID"), ds_Reports.Tables(1).Columns("ReportID")) 



     valGrid1.DataSource = ds_Reports.Tables(0) 
     valGrid1.DataBind() 




     For i = 0 To ds.Tables(0).Rows.Count - 1 
      If ds.Tables(0).Rows(i).Item(3).ToString = "M" Then 
       DropDownList2.Items.Insert(0, "Member") 
       DropDownList2.Items.Insert(1, "Non-Member") 
       TextBox1.Text = "M" 
      Else 
       DropDownList2.Items.Insert(0, "Non-Member") 
       DropDownList2.Items.Insert(1, "Member") 
       TextBox1.Text = "NM" 
      End If 

     Next 


    Else 

     DropDownList2.Items.Clear() 
     DropDownList3.Items.Clear() 
     TextBox1.Text.ToString() 
     DropDownList1.Items.Clear() 
    End If 
End Sub 

... 그리고 데이터 그리드에 대한 내 프런트 엔드 :

여기 내 백엔드입니다. 어떤 도움을 주시면 감사하겠습니다.

 <asp:DataGrid ID="valGrid1" runat="server" AutoGenerateColumns="false" BorderWidth="0"> 

     <Columns> 

      <asp:TemplateColumn> 
       <ItemTemplate> 
       <asp:DataGrid id="valgrid2" runat="server" AutoGenerateColumns="false" BorderWidth="0" datasource='<%#Container.DataItem.Row.GetChildRows("CompanyReport")%>'> 
        <Columns> 
         <asp:TemplateColumn> 

          <ItemTemplate> 
           <asp:CheckBox ID="CheckBox1" runat="server" Checked='<%# IIf((Container.DataItem("ReportID")).ToString().Equals(""), "false", "true")%>'/> 

           <asp:Label ID="lblRptName" runat="server" Text='<%# ((Container.DataItem("ReportName")).ToString())%>'></asp:Label> 

           <asp:Label ID="lblReportID" Visible="false" runat="server" Text='<%# Container.DataItem("ReportID") %>' /> 

          </ItemTemplate> 
         </asp:TemplateColumn> 
        </Columns> 
      </asp:DataGrid> 

      </ItemTemplate> 
      </asp:TemplateColumn> 


     </Columns> 

    </asp:DataGrid> 

답변

0
SELECT COLUMNS FROM TABLE WHERE COLUMN IS NOT NULL