The following is predicated on having a web enabled form with code behind ( c# )
Had the need to hide a button control on my web enabled form. I reviewed various articles and posts from the internet and frankly found them (although useful in their own right and I respect the people that volunteered the information) way too much trouble for my tastes. I figured there just had to be a simpler way to do this, well for me at any rate. And to my delight I did find a way, only 8 lines of code!...woohoo!
Brief summary of what's needed....
Done!....Wahla
The Details
1) Placed a textbox on my form. Set the conditional formatting to hide the textbox. Named the textbox txtHideFlag
(optional )
In the web.config file of the Sharepoint site of where my form resides, I added a Key Value pair variable that would contain the domain user names for people I only wanted to see the button on the form. I did this so I could easily change the names of peoples who were only required to see the button. Rather than hardcoding usernames in the code base, and then having to recompile, re-publish / deploy and so forth.
Under <appSettings> in the web.config I added…. <add key="SecurityManagers" value="danb;stevek" />
Obviously you're going to add the domain users of your domain.
2) Include System.Configuration to your code base
Using System.Configuration;
Then in my forms FormEvents_Loading() function I added the following code....
XPathNavigator root = MainDataSource.CreateNavigator();
string _securityManagers = "";
if ( ConfigurationManager.AppSettings["SecurityManagers"'] != null )
{
_securityManagers = ConfigurationManager.AppSettings["SecurityManagers"']
if( ! _securityManagers.Contains( this.Application.User.UserName ) )
root.SelectSingleNode("//mytxtHideFlag", NameSpaceManager).SetValue("HIDE");
else
root.SelectSingleNode("//mytxtHideFlag", NameSpaceManager).SetValue("");
}
I then configured the button's conditional formatting to hide itself if the mytxtHideFlag textbox = "HIDE". So the logic / functionality is, if the domain user who is viewing the form in the web browswer, is contained in that list of usernames contained in the Key/Value variable ~( in the web.config) ~, the button will be visible. Otherwise, the button is hidden.