9 July, 2010
0 Comments
1 category
If you want to set the visibility of a control based on some C# code like User.IsInRole("Administrator") directly in your *.aspx page, you can use the data binding syntax <%# … %> in the ASP .NET page. You don’t need the Eval function, but you do need to bind you’re page, else the code in <%# … %> will not be executed.
If you use the <%# … %> syntax in your master page, you should call this.DataBind() in your Page_Load event, else the code in <%# … %> won’t be executed.
*.ASPX
<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Site.master.cs" Inherits="Rvl.Demo.AspNet4.EF.WebApplication.SiteMaster" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head runat="server"> <title></title> <link href="~/Styles/Site.css" rel="stylesheet" type="text/css" /> <asp:ContentPlaceHolder ID="HeadContent" runat="server"> </asp:ContentPlaceHolder> </head> <body> <form runat="server"> <div class="page"> <asp:LinkButton ID="LinkButton1" runat="server" Visible='<%# User.IsInRole("Administrator") %>'>This link will only be visible for Administrators</asp:LinkButton> </div> </form> </body> </html>
*.cs
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace Rvl.Demo.AspNet4.EF.WebApplication { public partial class SiteMaster : System.Web.UI.MasterPage { protected void Page_Load(object sender, EventArgs e) { this.DataBind(); } } }
Category: Uncategorized