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>