0

InsertItemTemplate に LinkBut​​ton があり、クリックすると、InsertItemTemplate に非表示の DropDownList が表示されます。ただし、機能していないようですが、LinkBut​​ton をクリックすると、フォームビューの外側のラベルのテキストを変更すると表示されます。イベントは発生していますが、InsertItemTemplate で DropDownList を表示する部分は何もしていません。コードは以下のとおりです。

.aspx:

<asp:FormView ID="formViewNewRecord" runat="server">
        <InsertItemTemplate>
            <asp:DropDownList ID="ddlAddSelection2" runat="server" DataSourceID="dSource1" DataTextField="Users"  DataValueField="Users" AppendDataBoundItems="true" Visible="false">
                <asp:ListItem></asp:ListItem>
            </asp:DropDownList>
            <asp:LinkButton runat="server" ID="lbAddAnother" OnClick="lbAddAnother_Click">+Add Another</asp:LinkButton>
        </InsertItemTemplate>
        </asp:FormView>

    <asp:Label ID="Label2" runat="server" Text="Label"></asp:Label>

C#:

protected void lbAddAnother_Click(object sender, EventArgs e)
{
    DropDownList addSelection2 = (DropDownList)formViewNewItem.Row.Cells[0].FindControl("ddlAddSelection2");
    addSelection2.Visible = true;
    Label2.Text = addSelection2.ID;
}
4

1 に答える 1

0

ドロップダウン コントロールは、フォームビューの直接の子ではありません。したがって、FindControl 呼び出しは再帰的ではないため、フォーム ビューの子コントロールの適切な場所でコントロールを検索する必要があります。詳細については this を参照してください。ただし、大まかに言えば、次のようなものが必要です。

DropDownList ctrl = (DropDownList)FormView1.Row.Cells[0].FindControl("ddlAddSelection2");

その後、安全対策のために null をチェックする必要があります。

于 2013-06-27T16:52:46.660 に答える