0

我创建了一个列表视图,并且需要在第一个列表视图中创建另一个列表视图。当我转到文件后面的代码时,我看不到 listview2 控件,它是第二个列表视图的名称

我究竟做错了什么?

下面是我的标记代码

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Attestation2.aspx.cs" Inherits="Attestation2" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body style="z-index: 1; left: 21px; top: 0px; position: absolute; height: 313px;
    width: 983px">
    <form id="form1" runat="server">
    <div>
        <asp:DropDownList ID="Entitlementdlist" runat="server" AutoPostBack="true" Visible="true"
            ToolTip="All the Requests in this dropdown are Entitlement Requests only">
        </asp:DropDownList>

        <asp:ListView ID="listview1" runat="server" ItemPlaceholderID="itemplaceholder" >
            <LayoutTemplate>         
            <asp:PlaceHolder ID="itemplaceholder" runat="server" />  
            </LayoutTemplate> 

            <ItemTemplate>
                <table style="border:1px solid black;">
                    <tr>
                        <td>Report Name</td>
                        <td><asp:TextBox ID="ReportNameLbl" runat="server" Text='<%#Eval("REPORT_DESCRIPTION.rptdesctext") %>' Width="500"></asp:TextBox> </td>
                        <td>
                        <asp:CheckBoxList ID="CheckBoxList1" runat="server" RepeatDirection="Horizontal">
                             <asp:ListItem Text="Yes" Value="Yes"></asp:ListItem>
                                <asp:ListItem Text="No" Value="No"></asp:ListItem>
                            </asp:CheckBoxList>
                        </td>
                    </tr>
                    <tr>
                        <td>Content Description</td>
                        <td>
                        <asp:Label ID="ContentDescLbl" Text='<%#Eval("REPORT_REQUEST.StopLossMax") %>' runat="server" ></asp:Label>
                        </td>
                        <td>
                        <asp:CheckBoxList ID="CheckBoxList2" runat="server" RepeatDirection="Horizontal">
                             <asp:ListItem Text="Yes" Value="Yes"></asp:ListItem>
                                <asp:ListItem Text="No" Value="No"></asp:ListItem>
                            </asp:CheckBoxList>
                        </td>




                    </tr>
                    <tr>

                    <td>
                    Frequency
                    </td>
                    <td>
                     <asp:Label ID="frequencyLbl" Text='<%#Eval("REPORT_REQUEST.reportfrequency") %>' runat="server" ></asp:Label>
                    </td>
                    <td>
                    <asp:CheckBoxList ID="CheckBoxList3" runat="server" RepeatDirection="Horizontal">
                             <asp:ListItem Text="Yes" Value="Yes"></asp:ListItem>
                                <asp:ListItem Text="No" Value="No"></asp:ListItem>
                            </asp:CheckBoxList>
                    </td>
                    </tr>
                    <tr>


                    <td>
             <asp:ListView ID="listview2" runat="server" ItemPlaceholderID="itemplaceholder1" >
            <LayoutTemplate>         
            <asp:PlaceHolder ID="itemplaceholder1" runat="server" />  
            </LayoutTemplate> 

            <ItemTemplate>

             <table style="border:1px solid black;">
                    <tr>

                        <td>Recepients</td>
                        <td>
                         <asp:Label ID="frequencyLbl" Text='<%#Eval("REPORTAlaska.reportfrequency") %>' runat="server" ></asp:Label>
                        </td>
                    </tr>
                    </table>
            </ItemTemplate>
            </asp:ListView>
                    </td>

                    </tr>
                </table>


            </ItemTemplate>
        </asp:ListView>
    </div>
    </form>
</body>
</html>
4

2 回答 2

1

由于它是嵌套在模板中的控件,因此您需要使用“FindControl”方法。

编辑:

如果您使用一个函数,请查看 MSDN 上的描述,它将节省您在这里等待答案的时间 :) 简而言之,FindControl 不是递归函数,并且如果控件不直接位于控件集合中选择的元素,它不会工作。您正在尝试访问另一个 ListView 中的 ListView,因此您不能使用 Page.FindControl,但您可以执行以下操作:

myListView.FindControl(...)

希望你现在明白这个想法并且它对你有用。

于 2012-06-11T19:02:42.250 回答
0

这是正常行为。您的嵌套 ListView 是在外部 ListView 的模板中定义的。您必须使用特定行的 FindControl() 方法访问嵌套列表视图。

例如代码检查:查找控件

于 2012-06-11T19:03:50.833 回答