C# 在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项目。我想从数据库中读取数据,并对它们进行如下分类。 现在,我的代码如下:

<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。最后我找到了下面的答案。顺便说一句,谢谢你的兴趣