2016-07-06 19 views
0

午後。私はvb.netの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 
関連する問題