【发布时间】:2015-03-12 07:05:17
【问题描述】:
如何使用 gridview 命令隐藏那些重复的列? 我正在使用 嵌套 gridview 并在 sqlcommand 上离开 Outer Join 我加入了两个数据库.. 所以是的,这是我的下一个问题
这是我的代码
protected void NewConnection()
{
SqlCommand cmd = new SqlCommand("SELECT a.*,b.ID,b.Firstname,b.Middlename,b.Lastname,b.Friendswith,b.Amount from [User_TBL_DB] a LEFT OUTER JOIN [Friends_TBL_DB] b ON a.ID=b.Friendswith", conn);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds);
conn.Close();
GridView1.DataSource = ds;
GridView1.DataBind();
GroupGridView(GridView1.Rows, 0,0);
GridView1.Columns[3].Visible = false;
GridView1.Columns[4].Visible = false;
GridView1.Columns[7].Visible = false;
GridView1.Columns[8].Visible = false;
GridView1.Columns[9].Visible = false;
GridView1.Columns[10].Visible = false;
GridView1.Columns[11].Visible = false;
foreach (GridViewRow Separate in GridView1.Rows)
{
GridView gv2 = ((GridView)Separate.FindControl("GridView2"));
gv2.DataSource = ds;
gv2.DataBind();
string strfirstname = ((Label)Separate.FindControl("lblfirstname")).Text;
string strmiddlename=((Label)Separate.FindControl("lblmiddlename")).Text;
string strlastname = ((Label)Separate.FindControl("lbllastname")).Text;
string strage = ((Label)Separate.FindControl("lblage")).Text;
string strsex = ((Label)Separate.FindControl("lblsex")).Text;
string stramount = ((Label)Separate.FindControl("lblamount")).Text;
string strID1 = ((Label)Separate.FindControl("lblid")).Text;
foreach (GridViewRow grouplist in gv2.Rows)
{
string strID2 = ((Label)grouplist.FindControl("lblfriendswith2")).Text;
if (strID1 == strID2)
{
grouplist.Visible = true;
}
else
{
grouplist.Visible = false;
}
}
}
}
这是我的 gridview1 和 gridview2 的 asp
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False">
<Columns>
<asp:TemplateField HeaderText="Firstname" SortExpression="Firstname">
<EditItemTemplate>
<asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("Firstname") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lblfirstname" runat="server" Text='<%# Bind("Firstname") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Middlename" SortExpression="Middlename">
<EditItemTemplate>
<asp:TextBox ID="TextBox2" runat="server" Text='<%# Bind("Middlename") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lblmiddlename" runat="server" Text='<%# Bind("Middlename") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Lastname" SortExpression="Lastname">
<EditItemTemplate>
<asp:TextBox ID="TextBox3" runat="server" Text='<%# Bind("Lastname") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lbllastname" runat="server" Text='<%# Bind("Lastname") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Age" SortExpression="Age">
<EditItemTemplate>
<asp:TextBox ID="TextBox4" runat="server" Text='<%# Bind("Age") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lblage" runat="server" Text='<%# Bind("Age") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Sex" SortExpression="Sex">
<EditItemTemplate>
<asp:TextBox ID="TextBox5" runat="server" Text='<%# Bind("Sex") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lblsex" runat="server" Text='<%# Bind("Sex") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="ID" SortExpression="ID">
<EditItemTemplate>
<asp:TextBox ID="TextBox6" runat="server" Text='<%# Bind("ID") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lblid" runat="server" Text='<%# Bind("ID") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Friendswith" SortExpression="Friendswith">
<EditItemTemplate>
<asp:TextBox ID="TextBox7" runat="server" Text='<%# Bind("Friendswith") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lblfriendswith" runat="server" Text='<%# Bind("Friendswith") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Amount" SortExpression="Amount">
<EditItemTemplate>
<asp:TextBox ID="TextBox8" runat="server" Text='<%# Bind("Amount") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lblamount" runat="server" Text='<%# Bind("Amount") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="User_Firstname">
<ItemTemplate>
<asp:Label ID="lblfirstname1" runat="server" Text='<%# Bind("Firstname1") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="User_Middlename">
<ItemTemplate>
<asp:Label ID="lblmiddlename1" runat="server" Text='<%# Bind("Middlename1") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="User_Lastname">
<ItemTemplate>
<asp:Label ID="lbllastname1" runat="server" Text='<%# Bind("Lastname1") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="User_ID">
<ItemTemplate>
<asp:Label ID="lblid1" runat="server" Text='<%# Bind("ID1") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="YOUR FRIENDS">
<ItemTemplate>
<asp:GridView ID="GridView2" runat="server" AutoGenerateColumns="False">
<Columns>
<asp:TemplateField HeaderText="Firstname" SortExpression="Firstname">
<EditItemTemplate>
<asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("Firstname1") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lblfirstname2" runat="server" Text='<%# Bind("Firstname1") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Middlename" SortExpression="Middlename">
<EditItemTemplate>
<asp:TextBox ID="TextBox2" runat="server" Text='<%# Bind("Middlename1") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lblmiddlename2" runat="server" Text='<%# Bind("Middlename1") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Lastname" SortExpression="Lastname">
<EditItemTemplate>
<asp:TextBox ID="TextBox3" runat="server" Text='<%# Bind("Lastname1") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lbllastname2" runat="server" Text='<%# Bind("Lastname1") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Amount" SortExpression="Amount">
<EditItemTemplate>
<asp:TextBox ID="TextBox4" runat="server" Text='<%# Bind("Amount") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lblamount2" runat="server" Text='<%# Bind("Amount") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Friendswith_gv2">
<ItemTemplate>
<asp:Label ID="lblfriendswith2" runat="server" Text='<%# Bind("Friendswith") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
【问题讨论】:
-
如果您不需要重复数据,请在查询中使用
distinct。 -
这不是您的gridview 的问题,而是您的
SQL query的问题。此行为基于您拥有的数据。
标签: c# asp.net sql-server gridview