单个aspx页面上的两个Listviews

时间:2013-11-14 18:29:42

标签: asp.net listview

我在aps.net页面上有2个asp.net Listviews,lv1和lv2。我很难尝试从lv2中访问lv1的数据项。我需要对列表视图和颜色代码不相等的项目进行比较。

是否可以从同一页面上的另一个数据项中访问一个listview的数据项?

以下是代码:

    <html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>


</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:ListView ID="lst1" runat="server">
            <ItemTemplate>
                <table class="tblClass" width="95%" border="0" style="margin: auto; font-size: 13px;
                    height: 150px;">
                    <br />
                    <tr>
                        <td>
                            Account#:
                        </td>
                        <td align="right">
                            <b>
                                <%#Eval("ID")%></b>
                        </td>
                    </tr>
                    <tr>
                        <td>
                            Email:
                        </td>
                        <td  align="right">
                            <%#Eval("DefaultEmail")%>
                            <input type="radio" id="rad1" <%#(String.IsNullOrEmpty(Eval("DefaultEmail").ToString()) ? "disabled" : " ")%>
                                name="radEmail" value="<%#Eval("DefaultEmail") %>" />
                        </td>
                    </tr>
                </table>
            </ItemTemplate>
        </asp:ListView>
    </div>
    <div>
        <asp:ListView ID="lst2" runat="server">
            <ItemTemplate>
                <table class="tblClass" width="95%" border="0" style="margin: auto; font-size: 13px;
                    height: 150px;">
                    <br />
                    <tr>
                        <td>
                            Account#:
                        </td>
                        <td align="right">
                            <b>
                                <%#Eval("ID")%></b>
                        </td>
                    </tr>
                    <tr>
                        <td>
                            Email:
                        </td>
                        <td  align="right">
                            <%#Eval("DefaultEmail")%>
                            <input type="radio" id="rad2" <%#(String.IsNullOrEmpty(Eval("DefaultEmail").ToString()) ? "disabled" : " ")%>
                                name="radEmail" value="<%#Eval("DefaultEmail") %>" />
                        </td>
                    </tr>
                </table>
            </ItemTemplate>
        </asp:ListView>
    </div>
    </form>
</body>
</html>

我想使用EVAL来访问lst1中的lst2的电子邮件项目...这样,如果两个值不同,我可以对tr元素进行颜色编码。

1 个答案:

答案 0 :(得分:1)

如果在将它们绑定到listiviews之前在集合中解决这个问题怎么样?

这样的事情:

  • 在您的类上添加其他属性(绑定到listview1的属性),例如:bool EmailExists
  • 遍历集合,绑定到listview1,并在第二个集合中搜索电子邮件(它绑定到listView2)。如果您找到匹配项,则将EmailExists属性设置为True。
  • 使用<%#Eval(EmailExists) %>根据EmailExists的值适当地为tr元素着色