0

我能够在 LoginView1 中找到 DetailsView

DetailsView DetailsView1 = (DetailsView)LoginView1.FindControl("DetailsView1");

上面的语句有效......但我无法在 DetailsView 中找到标签

Label id = (Label)DetailsView1.FindControl("id");

上面的语句返回我 null

这是我的aspx代码

<asp:LoginView ID="LoginView1" runat="server">
        <LoggedInTemplate>
            <asp:DetailsView ID="DetailsView1" runat="server" AutoGenerateRows="False" 
                DataKeyNames="FeeID" DataSourceID="SqlDataSource1" Height="50px" 
                Visible="False" Width="100%">
                <Fields>
                    <asp:TemplateField HeaderText="FeeID" InsertVisible="False" 
                        SortExpression="FeeID">
                        <EditItemTemplate>
                            <asp:Label ID="Label1" runat="server" Text='<%# Eval("FeeID")%>'></asp:Label>
                        </EditItemTemplate>
                        <ItemTemplate>
                            <asp:Label ID="id" runat="server" Text='<%# Bind("FeeID") %>'></asp:Label>
                        </ItemTemplate>
                    </asp:TemplateField>
        </Fields>
                    </asp:DetailsView>
        </LoggedInTemplate>
            <AnonymousTemplate>
            Access Denied.
            </AnonymousTemplate>
        </asp:LoginView>

谁能帮我?

4

2 回答 2

0

第一的,

DetailsView view = (DetailsView)LoginView1.Rows[0].FindControl("DetailsView1");

然后,

Label id = (Label)view.rows[0].FindControl("id");
于 2012-12-27T05:31:53.610 回答
0

在对控件进行 DataBinding 之后,您将使用:

DetailsView1.Rows[0].Cells[0].FindControl("id")

尝试,它可能会起作用或相应地更改行或单元格索引。

于 2012-12-27T04:54:58.953 回答