I am using the below code in ASP.NET to hide action buttons for simple users who can see only data but can't change it;
<asp:LoginView ViewStateMode="Disabled" runat="server">
<RoleGroups>
<asp:RoleGroup Roles="HRAdmin">
<ContentTemplate>
<asp:Button ID="BtnAddnew" CssClass="bluebutton" title="Click to Add New Employee" runat="server" Text="Add New" OnClick="BtnAddnew_Click" />
<asp:Button ID="BtnSaveNew" CssClass="bluebutton" title="Click to Save New Record" runat="server" Text="Save New" Visible="false" OnClick="BtnSaveNew_Click" />
<asp:Button ID="BtnUpdate" CssClass="bluebutton" title="Click to Update Record" runat="server" Text="Update" OnClick="BtnUpdate_Click" />
<asp:Button ID="BtnSaveUpdate" CssClass="bluebutton" title="Click to Save Record" runat="server" Text="Save Update" Visible="false" OnClick="BtnSaveUpdate_Click" />
</ContentTemplate>
</asp:RoleGroup>
</RoleGroups>
</asp:LoginView>
But when I load page or build project, then I get errors:
The name 'BtnAddnew' does not exist in the current context.
The name 'BtnSaveNew' does not exist in the current context.
The name 'BtnUpdate' does not exist in the current context.
The name 'BtnSaveUpdate' does not exist in the current context.
It means in the C# code it is not loading OnClick event of these buttons. How can I fix this problem?

This is because I am using
<asp:LoginViewand buttons was inside it.That's why you may use below code: