I have a RadScheduler where I use the AdvancedInsertTemplate and AdvancedEditTemplate.
In the AdvancedForm user control I want to show different controls depending on the logged in user is Administrator or a normal user. So I've added a LoginView like this:
<
asp:Panel
runat
=
"server"
ID
=
"AdvancedControlsPanel"
CssClass
=
"rsAdvMoreControls"
>
<asp:Panel
runat
=
"server"
>
<%-- RESOURCE CONTROLS --%>
<
ul
class
=
"rsResourceControls"
>
<
li
>
<
asp:LoginView
ID
=
"LoginView1"
runat
=
"server"
>
<
RoleGroups
>
<
asp:RoleGroup
Roles
=
"Administrator"
>
<
ContentTemplate
>
<!-- Resource controls should follow the convention Res[Resource Name] for ID -->
<
scheduler:ResourceControl
runat
=
"server"
ID
=
"ResCustomer"
Type
=
"Customer"
Label
=
"Customer: "
Skin='<%# Owner.Skin %>' />
<
telerik:RadComboBox
runat
=
"server"
ID
=
"EmployeeComboBox"
Label
=
"Employee: "
Visible
=
"true"
Skin
=
"Outlook"
Width
=
"300px"
CausesValidation
=
"false"
OnClientSelectedIndexChanged
=
"OnClientSelectedIndexChanged"
OnClientLoad
=
"employeeClientLoad"
>
</
telerik:RadComboBox
>
</
ContentTemplate
>
</
asp:RoleGroup
>
<
asp:RoleGroup
Roles
=
"User"
>
<
ContentTemplate
>
<
asp:Label
ID
=
"LabelCustomer"
runat
=
"server"
Text
=
"CustomerName"
/>
</
ContentTemplate
>
</
asp:RoleGroup
>
</
RoleGroups
>
</
asp:LoginView
>
...
When compiling I then get an error saying "ResCustomer does not exist in current context":
[Bindable(BindableSupport.Yes, BindingDirection.TwoWay)]
public object Customer
{
get
{
return ResCustomer.Value;
}
set
{
ResCustomer.Value = value;
}
}
I then try to access the controls within the LoginView, but I can't find them:
LoginView lv = FindControl("LoginView1") as LoginView;
RadComboBox employeeComboBox = lv.FindControl("EmployeeComboBox") as RadComboBox;
Label customerLabel = lv.FindControl("LabelCustomer") as Label;
But now both the employeeComboBox and the customerLabel are null? The LoginView1 has been found, though.
And how do I find the ResCustomer?
On the page where the RadScheduler is I have a similar scenario, and there the controls within the LoginView are found without any problem.
What am I missing?
Regards, Jill-Connie Lorentsen
<
script
type
=
"text/javascript"
>
function onTabSelecting(sender, args) {
if (args.get_tab().get_pageViewID()) {
args.get_tab().set_postBack(false);
}
}
</
script
>
<
h1
>Customer Details</
h1
>
<
div
class
=
"normalPanel"
><
asp:Label
ID
=
"CustomerIdLabel"
runat
=
"server"
Text
=
"Customer ID: "
/></
div
>
<
telerik:RadTabStrip
ID
=
"CustomerDetailsRadTabStrip"
ClientIDMode
=
"Static"
ShowBaseLine
=
"true"
OnClientTabSelecting
=
"onTabSelecting"
runat
=
"server"
MultiPageID
=
"CustomerDetailsRadMultiPage"
OnTabClick
=
"RadTabStrip1_TabClick"
Orientation
=
"HorizontalTop"
>
</
telerik:RadTabStrip
>
<
telerik:RadMultiPage
ID
=
"CustomerDetailsRadMultiPage"
ClientIDMode
=
"Static"
runat
=
"server"
SelectedIndex
=
"0"
OnPageViewCreated
=
"RadMultiPage1_PageViewCreated"
>
</
telerik:RadMultiPage
>
using
System;
using
Microsoft.Practices.ObjectBuilder;
using
System.Collections;
using
AWModel;
using
System.Data.Objects;
using
Telerik.Web.UI;
using
System.Web.UI;
using
AdvWorksWCSF.Shared.Code;
namespace
AdvWorksWCSF.Customer.Views
{
public
partial
class
CustomerDetails : Microsoft.Practices.CompositeWeb.Web.UI.Page, ICustomerDetailsView
{
private
CustomerDetailsPresenter _presenter;
private
ViewStateValue<
int
> customerID;
protected
void
Page_Load(
object
sender, EventArgs e)
{
if
(!
this
.IsPostBack)
{
this
._presenter.OnViewInitialized();
this
.AddTab(
"Customer Details"
,
"CustomerDetailsControl"
);
this
.AddPageView(
this
.CustomerDetailsRadTabStrip.FindTabByValue(
"CustomerDetailsControl"
));
this
.AddTab(
"Demographics"
,
"DemographicInfoControl"
);
CustomerDetailsControl customerDetailsControl =
this
.CustomerDetailsRadMultiPage.FindControl(
"CustomerDetailsControl_userControl"
)
as
CustomerDetailsControl;
customerDetailsControl.CustomerID =
int
.Parse(Request.QueryString[
"CustomerID"
]);
this
.CustomerIdLabel.Text += customerDetailsControl.CustomerID.ToString();
}
this
._presenter.OnViewLoaded();
}
[CreateNew]
public
CustomerDetailsPresenter Presenter
{
get
{
return
this
._presenter;
}
set
{
if
(value ==
null
)
throw
new
ArgumentNullException(
"value"
);
this
._presenter = value;
this
._presenter.View =
this
;
}
}
private
void
AddTab(
string
tabName,
string
tabValue)
{
RadTab tab =
new
RadTab();
tab.Text = tabName;
tab.Value = tabValue;
this
.CustomerDetailsRadTabStrip.Tabs.Add(tab);
}
protected
void
RadMultiPage1_PageViewCreated(
object
sender, RadMultiPageEventArgs e)
{
string
userControlToLoad =
this
.AppRelativeTemplateSourceDirectory +
string
.Format(Constants.BuildTabString, e.PageView.ID);
Control userControl = Page.LoadControl(userControlToLoad);
userControl.ID =
string
.Format(Constants.BuildUserControlString, e.PageView.ID);
e.PageView.Controls.Add(userControl);
}
private
void
AddPageView(RadTab tab)
{
RadPageView pageView =
new
RadPageView();
pageView.ID = tab.Value;
this
.CustomerDetailsRadMultiPage.PageViews.Add(pageView);
//pageView.CssClass = "pageView";
tab.PageViewID = pageView.ID;
}
protected
void
RadTabStrip1_TabClick(
object
sender, RadTabStripEventArgs e)
{
AddPageView(e.Tab);
e.Tab.PageView.Selected =
true
;
}
}
}
<%@ Control Language="C#" AutoEventWireup="true" Codebehind="CustomerDetailsControl.ascx.cs" Inherits="AdvWorksWCSF.Customer.Views.CustomerDetailsControl" %>
<%@ Import Namespace="AWModel" %>
<%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %>
<
asp:FormView
ID
=
"CustomerDetailsFormView"
runat
=
"server"
CssClass
=
"customerDetailsForView"
>
<
ItemTemplate
>
<
asp:Panel
ID
=
"NameDetailsPanel"
runat
=
"server"
ClientIDMode
=
"Static"
GroupingText
=
"Name and Title"
CssClass
=
"normalPanel"
>
<
div
class
=
"customerDetailsRow"
>
<
div
class
=
"customerDetailsLeftCell"
>
<
div
class
=
"customerDetailsLabel"
>Title:</
div
>
<
div
class
=
"customerDetailsValue"
><
asp:Label
ID
=
"TitleLabel"
Text='<%# Eval("Title") %>' runat="server" /></
div
>
</
div
>
<
div
class
=
"customerDetailsRightCell"
>
<
div
class
=
"customerDetailsLabel"
>Last Name:</
div
>
<
div
class
=
"customerDetailsValue"
><
asp:Label
ID
=
"LastNameLabel"
Text='<%# ((GetDetailsForIndividualCustomerCT)Container.DataItem).LastName.ToString() %>' runat="server" /></
div
>
</
div
>
</
div
>
<
div
class
=
"customerDetailsRow"
>
<
div
class
=
"customerDetailsLeftCell"
>
<
div
class
=
"customerDetailsLabel"
>First Name:</
div
>
<
div
class
=
"customerDetailsValue"
><
asp:Label
ID
=
"FirstNameLabel"
Text='<%# ((GetDetailsForIndividualCustomerCT)Container.DataItem).FirstName.ToString() %>' runat="server" /></
div
>
</
div
>
<
div
class
=
"customerDetailsRightCell"
>
<
div
class
=
"customerDetailsLabel"
>Middle Name:</
div
>
<
div
class
=
"customerDetailsValue"
><
asp:Label
ID
=
"MiddleNameLabel"
Text='<%# Eval("MiddleName") %>' runat="server" /></
div
>
</
div
>
</
div
>
</
asp:Panel
>
<
asp:Panel
ID
=
"ContactDetailsPanel"
GroupingText
=
"Contact Details"
runat
=
"server"
CssClass
=
"normalPanel"
>
<
div
class
=
"customerDetailsRow"
>
<
div
class
=
"customerDetailsLeftCell"
>
<
div
class
=
"customerDetailsLabel"
>Email:</
div
>
<
div
class
=
"customerDetailsValue"
><
asp:Label
ID
=
"EmailLabel"
Text='<%# ((GetDetailsForIndividualCustomerCT)Container.DataItem).EmailAddress.ToString() %>' runat="server" /></
div
>
</
div
>
<
div
class
=
"customerDetailsRightCell"
>
<
div
class
=
"customerDetailsLabel"
>Phone:</
div
>
<
div
class
=
"customerDetailsValue"
><
asp:Label
ID
=
"PhoneLabel"
Text='<%# Eval("Phone") %>' runat="server" /></
div
>
</
div
>
</
div
>
<
div
class
=
"customerDetailsRow"
>
<
div
class
=
"customerDetailsLeftCell"
>
<
div
class
=
"customerDetailsLabel"
>Address:</
div
>
<
div
class
=
"customerDetailsValue"
><
asp:Label
ID
=
"AddressLine1Label"
Text='<%# ((GetDetailsForIndividualCustomerCT)Container.DataItem).AddressLine1.ToString() %>' runat="server" /></
div
>
</
div
>
<
div
class
=
"customerDetailsLeftCell"
>
<
div
class
=
"customerDetailsLabel"
></
div
>
<
div
class
=
"customerDetailsValue"
><
asp:Label
ID
=
"AddressLine2Label"
Text='<%# Eval("AddressLine2") %>' runat="server" /></
div
>
</
div
>
</
div
>
<
div
class
=
"customerDetailsRow"
>
<
div
class
=
"customerDetailsLeftCell"
>
<
div
class
=
"customerDetailsLabel"
>City:</
div
>
<
div
class
=
"customerDetailsValue"
><
asp:Label
ID
=
"CityLabel"
Text='<%# ((GetDetailsForIndividualCustomerCT)Container.DataItem).City.ToString() %>' runat="server" /></
div
>
</
div
>
<
div
class
=
"customerDetailsRightCell"
>
<
div
class
=
"customerDetailsLabel"
>Post code:</
div
>
<
div
class
=
"customerDetailsValue"
><
asp:Label
ID
=
"PostalCodeLabel"
Text='<%# Eval("PostalCode") %>' runat="server" /></
div
>
</
div
>
</
div
>
<
div
class
=
"customerDetailsRow"
>
<
div
class
=
"customerDetailsLeftCell"
>
<
div
class
=
"customerDetailsLabel"
>State/Province:</
div
>
<
div
class
=
"customerDetailsValue"
><
asp:Label
ID
=
"Label1"
Text='<%# ((GetDetailsForIndividualCustomerCT)Container.DataItem).State_Province.ToString() %>' runat="server" /></
div
>
</
div
>
<
div
class
=
"customerDetailsRightCell"
>
<
div
class
=
"customerDetailsLabel"
>Sales Territory:</
div
>
<
div
class
=
"customerDetailsValue"
><
asp:Label
ID
=
"Label2"
Text='<%# ((GetDetailsForIndividualCustomerCT)Container.DataItem).Sales_Territory.ToString() %>' runat="server" /></
div
>
</
div
>
</
div
>
</
asp:Panel
>
</
ItemTemplate
>
</
asp:FormView
>
using
System;
using
Microsoft.Practices.ObjectBuilder;
using
AWModel;
using
System.Data.Objects;
namespace
AdvWorksWCSF.Customer.Views
{
public
partial
class
CustomerDetailsControl : Microsoft.Practices.CompositeWeb.Web.UI.UserControl, ICustomerDetailsControlView
{
private
CustomerDetailsControlPresenter _presenter;
private
int
customerID;
protected
void
Page_Load(
object
sender, EventArgs e)
{
if
(!
this
.IsPostBack)
{
this
._presenter.OnViewInitialized();
}
this
._presenter.OnViewLoaded();
}
[CreateNew]
public
CustomerDetailsControlPresenter Presenter
{
get
{
return
this
._presenter;
}
set
{
if
(value ==
null
)
throw
new
ArgumentNullException(
"value"
);
this
._presenter = value;
this
._presenter.View =
this
;
}
}
public
int
CustomerID
{
get
{
return
customerID;
}
set
{
customerID = value;
}
}
public
ObjectResult<GetDetailsForIndividualCustomerCT> CustomerDetailsFormDataSource
{
set
{
this
.CustomerDetailsFormView.DataSource = value;
this
.CustomerDetailsFormView.DataBind();
}
}
}
}
<
telerik:RadAjaxManagerProxy
ID
=
"RadAjaxManagerProxy1"
runat
=
"server"
>
<
AjaxSettings
>
<
telerik:AjaxSetting
AjaxControlID
=
"CustomerDetailsRadTabStrip"
>
<
UpdatedControls
>
<
telerik:AjaxUpdatedControl
ControlID
=
"CustomerDetailsRadTabStrip"
/>
<
telerik:AjaxUpdatedControl
ControlID
=
"CustomerDetailsRadMultiPage"
/>
</
UpdatedControls
>
</
telerik:AjaxSetting
>
<
telerik:AjaxSetting
AjaxControlID
=
"CustomerDetailsRadMultiPage"
>
<
UpdatedControls
>
<
telerik:AjaxUpdatedControl
ControlID
=
"CustomerDetailsRadMultiPage"
/>
</
UpdatedControls
>
</
telerik:AjaxSetting
>
</
AjaxSettings
>
</
telerik:RadAjaxManagerProxy
>
<
telerik:RadWindow
ID
=
"rwOrgDetails"
runat
=
"server"
Modal
=
"true"
Behaviors
=
"Close,Move"
ShowContentDuringLoad
=
"False"
AutoSize
=
"true"
AutoSizeBehaviors
=
"Default"
MinWidth
=
"400px"
Animation
=
"FlyIn"
KeepInScreenBounds
=
"True"
VisibleStatusbar
=
"False"
OnClientShow
=
"re"
DestroyOnClose
=
"true"
OnClientClose
=
"OnClientClose"
EnableViewState
=
"False"
>
<
ContentTemplate
>
<
asb:organization
ID
=
"detailedView"
runat
=
"server"
/>
<
div
align
=
"center"
class
=
"hiddenClose"
style
=
"display:none"
>
<
telerik:RadButton
ID
=
"RadButton6"
SkinID
=
"Close"
runat
=
"server"
OnClientClicking
=
"cw"
>
</
telerik:RadButton
>
</
div
>
</
ContentTemplate
>
</
telerik:RadWindow
>
<
telerik:RadScriptBlock
ID
=
"RadScriptBlock1"
runat
=
"server"
>
<
script
type
=
"text/javascript"
>
function OnClientClose(oWnd) {
oWnd.setUrl("about:blank"); // Sets url to blank
}
</
script
>
</
telerik:RadScriptBlock
>
Hi,
I have filtering enabled in my RadGrid.The filter row is visible, but don't want the filter icons in each table cell. Please provide a method to hide all filter buttons.
Thanks,