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

コントロールをDataBindingした後、次を使用します。

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

試してみてください。動作するか、それに応じて行またはセルのインデックスが変更される可能性があります。

于 2012-12-27T04:54:58.953 に答える
0

初め、

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

それで、

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