对不起,如果这是基本的,我是.Net的新手并且环顾四周,但也许我没有找到合适的条款。
我有一个在设计视图中加载的DetailsView。我希望其中一些字段仅向某些用户显示。所以我在编码背后思考,我可以隐藏其他领域。我还想在代码隐藏中更改其中一些字段的HeaderText。
但是,我还需要这个DetailsView可以编辑。如果某些用户隐藏了这些字段,我不确定这会对任何事情产生什么影响。它会更新所有字段,甚至隐藏的字段吗?
只有特定用户也应该看到编辑按钮。
有没有人有关于如何做这样的事情的任何提示?
答案 0 :(得分:2)
在您的页面类中,创建一个布尔字段来表示控件是否可见,并在page_load中设置此值。 (注意:Authentication.IsAuthorized只是如何确定字段的示例,用您自己的代码替换它)
public partial class MyPage : System.Web.UI.Page
{
protected bool showField = false;
protected void Page_Load(object sender, EventArgs e)
{
showField = Authentication.IsAuthorized(User.Identity.Name);
}
}
现在绑定到控件中的此字段。请注意,这需要使用模板字段而不是绑定字段。
<asp:Label ID="lblHiddenField" runat="server" Visible='<%# showField %>' />
这适用于您的按钮,前提是它们位于模板字段中。我过去使用了绑定字段和一些令人讨厌的foreach循环来找到我想要隐藏的控件,但老实说,这是更直接的方式来做这个恕我直言。
答案 1 :(得分:2)
要仅显示部分字段,请使用以下代码:
DetailsView1.Fields[1].Visible = false;
要更改标题文字,请使用:
DetailsView1.Fields[1].HeaderText = "something";
编辑只允许编辑可见字段。
要使detailview可编辑使用:
DetailsView1.ChangeMode(DetailsViewMode.Edit);