C# 在Listview中使用特定属性分组
伙计们,我有一个asp:listview项目。我想从数据库中读取数据,并对它们进行如下分类。 现在,我的代码如下:C# 在Listview中使用特定属性分组,c#,asp.net,C#,Asp.net,伙计们,我有一个asp:listview项目。我想从数据库中读取数据,并对它们进行如下分类。 现在,我的代码如下: <asp:ListView ID="ListView1" runat="server" DataKeyNames="Id" DataSourceID="SqlDataSource1" ItemPlaceholderID="iph" > <ItemTemplate> <table id="item
<asp:ListView ID="ListView1" runat="server" DataKeyNames="Id" DataSourceID="SqlDataSource1"
ItemPlaceholderID="iph" >
<ItemTemplate>
<table id="item_table" border="1">
<tr style="background-color: #E0FFFF;color: #333333;">
<td>
<asp:Label ID="IdLabel" runat="server"
Text='<%# Eval("Id") %>' />
</td>
<td>
<asp:Label ID="NameLabel" runat="server"
Text='<%# Eval("Name") %>' />
</td>
<td>
<asp:Label ID="SurnameLabel" runat="server"
Text='<%# Eval("Surname") %>' />
</td>
<td>
<asp:Label ID="SexLabel" runat="server"
Text='<%# Eval("Sex") %>' />
</td>
<td>
<asp:Label ID="EmailLabel" runat="server"
Text='<%# Eval("Email") %>' />
</td>
<td>
<asp:Label ID="CityLabel" runat="server"
Text='<%# Eval("City") %>' />
</td>
<td>
<asp:Label ID="AgeLabel" runat="server"
Text='<%# Eval("Age") %>' />
</td>
</tr>
</table>
</ItemTemplate>
<LayoutTemplate>
<table id="table1" runat="server" border="1"
style="background-color: #FFFFFF;border-color: #999999;border-style:none;
border-width:1px;font-family: Verdana, Arial, Helvetica, sans-serif;">
<tr runat="server" style="background-color: #E0FFFF;color: #333333;">
<th id="Th1" style="width:130px" runat="server">Id</th>
<th id="Th2" style="width:130px" runat="server">Name</th>
<th id="Th3" style="width:130px" runat="server">Surname</th>
<th id="Th4" style="width:130px" runat="server">Sex</th>
<th id="Th5" style="width:130px" runat="server">Email</th>
<th id="Th6" style="width:130px" runat="server">City</th>
<th id="Th7" style="width:130px" runat="server">Age</th>
</tr>
<tr>
</tr>
</table>
<table id="table2" runat="server" border="1"
style="background-color: #FFFFFF;border-color: #999999;border-style:none;border-width:1px;font-family: Verdana, Arial, Helvetica, sans-serif;">
<tr id="Tr2" runat="server" style="background-color: #E0FFFF;color: #333333;">
<th id="Th8" style="width:130px" runat="server">Id</th>
<th id="Th9" style="width:130px" runat="server">Name</th>
<th id="Th10" style="width:130px" runat="server">Surname</th>
<th id="Th11" style="width:130px" runat="server">Sex</th>
<th id="Th12" style="width:130px" runat="server">Email</th>
<th id="Th13" style="width:130px" runat="server">City</th>
<th id="Th14" style="width:130px" runat="server">Age</th>
</tr>
<tr runat="server" id="iph"></tr>
</table>
</LayoutTemplate>
</asp:ListView>
身份证件
名称
姓
性
电子邮件
城市
年龄
身份证件
名称
姓
性
电子邮件
城市
年龄
我可以使用2个listview来实现这一点,但我想在1个listview中实现这一点。这是可能的?如果可能,您可以用详细信息或代码示例来解释我吗?最后我找到了实现这一点的方法。代码如下:
<asp:ListView ID="ListView1" runat="server" DataKeyNames="Id" DataSourceID="SqlDataSource1"
ItemPlaceholderID="iph" >
<ItemTemplate>
<table id="item_table" border="1">
<%# AddTitle() %>
<tr style="background-color: #E0FFFF;color: #333333;">
<td>
<asp:Label ID="IdLabel" runat="server"
Text='<%# Eval("Id") %>' />
</td>
<td>
<asp:Label ID="NameLabel" runat="server"
Text='<%# Eval("Name") %>' />
</td>
<td>
<asp:Label ID="SurnameLabel" runat="server"
Text='<%# Eval("Surname") %>' />
</td>
<td>
<asp:Label ID="SexLabel" runat="server"
Text='<%# Eval("Sex") %>' />
</td>
<td>
<asp:Label ID="EmailLabel" runat="server"
Text='<%# Eval("Email") %>' />
</td>
<td>
<asp:Label ID="CityLabel" runat="server"
Text='<%# Eval("City") %>' />
</td>
<td>
<asp:Label ID="AgeLabel" runat="server"
Text='<%# Eval("Age") %>' />
</td>
</tr>
</table>
</ItemTemplate>
<LayoutTemplate>
<table id="table1" runat="server" border="1"
style="background-color: #FFFFFF;border-color: #999999;border-style:none;border-width:1px;font-family: Verdana, Arial, Helvetica, sans-serif;">
<tr runat="server" style="background-color: #E0FFFF;color: #333333;">
<th id="Th1" style="width:130px" runat="server">Id</th>
<th id="Th2" style="width:130px" runat="server">Name</th>
<th id="Th3" style="width:130px" runat="server">Surname</th>
<th id="Th4" style="width:130px" runat="server">Sex</th>
<th id="Th5" style="width:130px" runat="server">Email</th>
<th id="Th6" style="width:130px" runat="server">City</th>
<th id="Th7" style="width:130px" runat="server">Age</th>
</tr>
<tr runat="server" id="iph">
</tr>
</table>
</LayoutTemplate>
</asp:ListView>
身份证件
名称
姓
性
电子邮件
城市
年龄
在代码隐藏中:
string lastvalue = "";
protected string AddTitle() {
string newvalue = Eval("Sex").ToString();
if (newvalue != lastvalue)
{
lastvalue = newvalue;
return String.Format("<tr class=" + "group" + "><td colspan=" + "7" + ">Gender:{0}</td></tr>", newvalue);
}
else {
return string.Empty;
}
}
string lastvalue=“”;
受保护的字符串AddTitle(){
字符串newvalue=Eval(“Sex”).ToString();
如果(newvalue!=lastvalue)
{
lastvalue=newvalue;
返回String.Format(“性别:{0}”,newvalue);
}
否则{
返回字符串。空;
}
}
首先,对于像pic这样的分组数据,必须对数据记录进行排序。之后,每次从数据库获取记录时,在AddTitle方法中,它控制性别类型。如果性别类型不同于以前的性别类型,它会在表中添加一列,如“男性列表”或“女性列表”。我希望它能帮助像我这样有问题的人。最后,我找到了这样做的方法。代码如下:
<asp:ListView ID="ListView1" runat="server" DataKeyNames="Id" DataSourceID="SqlDataSource1"
ItemPlaceholderID="iph" >
<ItemTemplate>
<table id="item_table" border="1">
<%# AddTitle() %>
<tr style="background-color: #E0FFFF;color: #333333;">
<td>
<asp:Label ID="IdLabel" runat="server"
Text='<%# Eval("Id") %>' />
</td>
<td>
<asp:Label ID="NameLabel" runat="server"
Text='<%# Eval("Name") %>' />
</td>
<td>
<asp:Label ID="SurnameLabel" runat="server"
Text='<%# Eval("Surname") %>' />
</td>
<td>
<asp:Label ID="SexLabel" runat="server"
Text='<%# Eval("Sex") %>' />
</td>
<td>
<asp:Label ID="EmailLabel" runat="server"
Text='<%# Eval("Email") %>' />
</td>
<td>
<asp:Label ID="CityLabel" runat="server"
Text='<%# Eval("City") %>' />
</td>
<td>
<asp:Label ID="AgeLabel" runat="server"
Text='<%# Eval("Age") %>' />
</td>
</tr>
</table>
</ItemTemplate>
<LayoutTemplate>
<table id="table1" runat="server" border="1"
style="background-color: #FFFFFF;border-color: #999999;border-style:none;border-width:1px;font-family: Verdana, Arial, Helvetica, sans-serif;">
<tr runat="server" style="background-color: #E0FFFF;color: #333333;">
<th id="Th1" style="width:130px" runat="server">Id</th>
<th id="Th2" style="width:130px" runat="server">Name</th>
<th id="Th3" style="width:130px" runat="server">Surname</th>
<th id="Th4" style="width:130px" runat="server">Sex</th>
<th id="Th5" style="width:130px" runat="server">Email</th>
<th id="Th6" style="width:130px" runat="server">City</th>
<th id="Th7" style="width:130px" runat="server">Age</th>
</tr>
<tr runat="server" id="iph">
</tr>
</table>
</LayoutTemplate>
</asp:ListView>
身份证件
名称
姓
性
电子邮件
城市
年龄
在代码隐藏中:
string lastvalue = "";
protected string AddTitle() {
string newvalue = Eval("Sex").ToString();
if (newvalue != lastvalue)
{
lastvalue = newvalue;
return String.Format("<tr class=" + "group" + "><td colspan=" + "7" + ">Gender:{0}</td></tr>", newvalue);
}
else {
return string.Empty;
}
}
string lastvalue=“”;
受保护的字符串AddTitle(){
字符串newvalue=Eval(“Sex”).ToString();
如果(newvalue!=lastvalue)
{
lastvalue=newvalue;
返回String.Format(“性别:{0}”,newvalue);
}
否则{
返回字符串。空;
}
}
首先,对于像pic这样的分组数据,必须对数据记录进行排序。之后,每次从数据库获取记录时,在AddTitle方法中,它控制性别类型。如果性别类型不同于以前的性别类型,它会在表中添加一列,如“男性列表”或“女性列表”。我希望它能帮助像我这样有问题的人。不幸的是,我看不到图片,它只是打开了一个空白页。我编辑了它。如果你知道如何在1 listview中操作,请帮助我?@harunyılmaz-
Repeater
控件最适合这个要求。我现在可以看到它了,Rahul的建议是可行的。是的,我尝试过,使用Repeater很容易。我挑战自己使用listview。最后我找到了下面的答案。谢谢你的关注。幸运的是,我看不到图片,它只是打开了一个空白页我编辑了它。如果你知道如何在1 listview中操作,请帮助我?@harunyılmaz-Repeater
控件最适合此要求。我现在可以看到它了,Rahul的建议是可行的。是的,我尝试过,使用Repeater很容易。我挑战自己使用listview。最后我找到了下面的答案。顺便说一句,谢谢你的兴趣