C# 隐藏来自codebehind的详细视图中的字段

C# 隐藏来自codebehind的详细视图中的字段,c#,asp.net,C#,Asp.net,很抱歉,如果这是基本的,我是.Net的新手,已经四处查看过了,但可能我没有搜索正确的术语 我在设计视图中加载了一个DetailsView。我希望其中一些字段只显示给某些用户。所以我想在codebehind中,我可以隐藏其他字段。我还想更改codebehind中某些字段的HeaderText 但是,我还需要此DetailsView可编辑。如果这些字段对某些用户是隐藏的,我不确定这会有什么影响。它会更新所有字段,甚至是隐藏字段吗 只有某些用户才能看到“编辑”按钮 有人知道如何进行类似操作吗?在pag

很抱歉,如果这是基本的,我是.Net的新手,已经四处查看过了,但可能我没有搜索正确的术语

我在设计视图中加载了一个DetailsView。我希望其中一些字段只显示给某些用户。所以我想在codebehind中,我可以隐藏其他字段。我还想更改codebehind中某些字段的HeaderText

但是,我还需要此DetailsView可编辑。如果这些字段对某些用户是隐藏的,我不确定这会有什么影响。它会更新所有字段,甚至是隐藏字段吗

只有某些用户才能看到“编辑”按钮


有人知道如何进行类似操作吗?

在page类中创建一个布尔字段来表示控件是否应可见,并在page_load中设置此值。(注意:Authentication.IsAuthorized只是如何确定字段的示例,请用您自己的代码替换此字段)

现在绑定到您控制的此字段。请注意,这需要使用模板字段而不是绑定字段

<asp:Label ID="lblHiddenField" runat="server" Visible='<%# showField %>' />


这也适用于您的按钮,前提是它们位于模板字段中。我以前使用过绑定字段和一些讨厌的foreach循环来查找我想要隐藏的控件,但老实说,这是更直接的方法。在page类中创建一个布尔字段来表示控件是否应该可见,并在page_load中设置此值。(注意:Authentication.IsAuthorized只是如何确定字段的示例,请用您自己的代码替换此字段)

现在绑定到您控制的此字段。请注意,这需要使用模板字段而不是绑定字段

<asp:Label ID="lblHiddenField" runat="server" Visible='<%# showField %>' />


这也适用于您的按钮,前提是它们位于模板字段中。我以前使用过绑定字段和一些讨厌的foreach循环来查找我想要隐藏的控件,但老实说,这是一种更直接的方法。要仅显示一些字段,请使用以下代码:

DetailsView1.Fields[1].Visible = false;
要更改标题文本,请使用:

DetailsView1.Fields[1].HeaderText = "something";
“编辑”将仅允许编辑可见字段

要使detailview可编辑,请使用:

DetailsView1.ChangeMode(DetailsViewMode.Edit);

要仅显示部分字段,请使用以下代码:

DetailsView1.Fields[1].Visible = false;
要更改标题文本,请使用:

DetailsView1.Fields[1].HeaderText = "something";
“编辑”将仅允许编辑可见字段

要使detailview可编辑,请使用:

DetailsView1.ChangeMode(DetailsViewMode.Edit);

请参见如何在中查找和修改控件detailsview@afzalulh感谢您提供的链接请参阅如何在中查找和修改控件detailsview@afzalulh谢谢你的链接如果你想让它适用于按钮,你必须像
button1.databind()那样进行数据绑定只要你使用@诡计,这就是我一直在寻找的。我不知道该如何表达。非常感谢您的帮助。@afzalulh Databind将在按钮上自动调用,如果它位于模板字段中。电影28-没问题!很乐意帮忙!如果你想让它对按钮起作用,你必须像
button1.databind()那样进行数据绑定只要你使用@诡计,这就是我一直在寻找的。我不知道该如何表达。非常感谢您的帮助。@afzalulh Databind将在按钮上自动调用,如果它位于模板字段中。电影28-没问题!很乐意帮忙!