设置表单视图内部面板的可见性

本文关键字:可见性 内部 表单 视图 设置 | 更新日期: 2023-09-27 18:02:39

我有一个FormView,其中包含我想根据用户访问权限向不同用户提供的元素。我已经把它们都封装在一个面板中,并对面板进行了标识,这样我就可以从后面的代码中调用它们,这些代码可能会通过FindControl钻进FormView,但到目前为止还没有成功。

我从来没有在FindControl上有过太多的运气,我想知道你们中是否有人对它更了解,可以为我指出正确的方向。这里是我在aspx和c#上的代码的一个例子,背后的代码是不工作的!

如果这是有效的,那么我将为这个面板的有效组设置条件,以允许这些用户访问这个面板,并对其他应用权限的面板执行同样的操作。

通过这种方式,我将根据ACL为每个用户组呈现自定义FormView。但是我就是想不明白如何正确地使用FindControl。

ASPX示例:

<asp:FormView Width="100%" ID="ChangeFormFV" DefaultMode="Insert" runat="server" DataKeyNames="CAssetID" DataSourceID="UpdateSqlDataSource">
<InsertItemTemplate>
    <asp:Panel runat="server" ID="ShortDescPnl" Visible="false">
    </asp:Panel>
    <asp:Panel runat="server" ID="LongDescPnl" Visible="false">
    </asp:Panel>
    <asp:Panel runat="server" ID="AddNotesPnl" Visible="false">
    </asp:Panel>
    <asp:Panel runat="server" ID="ManufacturerPnl" Visible="false">
    </asp:Panel>
<asp:LinkButton runat="server" Text="Insert" CommandName="Insert" ID="InsertButton" CausesValidation="True" />&nbsp;<asp:LinkButton runat="server" Text="Cancel" CommandName="Cancel" ID="InsertCancelButton" CausesValidation="False" />
</ItemTemplate>

c#代码隐藏(不工作):

protected void ChangeFormFV_Databound(object sender, EventArgs e)
    {
        if (Session["SessionUType"].ToString() == "ITSec")
        {
            ChangeFormFV.Row.FindControl("ShortDescPnl.visiblity")="true";
        }
    }

感谢任何可以提供的帮助,一直在寻找参考文献和阅读我所能,但只是没有得到我需要从我的结果

设置表单视图内部面板的可见性

FindControl方法返回实际控件。设置控件本身的可见性。像这样:

Panel control = ChangeFormFV.Row.FindControl("ShortDescPnl") as Panel;
if (control != null)
    control.Visible = true;