在详细信息视图中查找登录视图内的标签

时间:2012-12-27 03:49:12

标签: c# asp.net

我能在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>

任何人都可以帮助我吗?

2 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分:0)

  

首先,

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

然后,

Label id = (Label)view.rows[0].FindControl("id");