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>