or
Imports System
Imports System.Data
Imports System.Data.SqlClient
Imports System.Configuration
Imports Telerik.Web.UI
Partial Class _default
Inherits System.Web.UI.Page
Private Const MessageTemplate As String = "You chose to explore the city of {1} in {0}"
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
If Not Page.IsPostBack Then
' Fill the continents combo.
LoadStates()
ElseIf Not Page.IsCallback Then
' On regular postbacks restore the items of the related ComboBoxes.
' Their selected items will be automatically restored from their ClientState.
LoadStates()
LoadCities(cbxStates.SelectedValue)
End If
End Sub
Protected Sub LoadStates()
Dim connection As New SqlConnection(ConfigurationManager.ConnectionStrings("DBConnectionString").ConnectionString)
Dim adapter As New SqlDataAdapter("SELECT * FROM States ORDER By StateName", connection)
Dim dt As New DataTable()
adapter.Fill(dt)
cbxStates.DataTextField = "StateName"
cbxStates.DataValueField = "StateID"
cbxStates.DataSource = dt
cbxStates.DataBind()
' Insert the first item.
cbxStates.Items.Insert(0, New RadComboBoxItem("- Select a State -"))
End Sub
Protected Sub LoadCities(ByVal StateID As String)
Dim connection As New SqlConnection(ConfigurationManager.ConnectionStrings("DBConnectionString").ConnectionString)
' Select a country based on the continentID.
Dim adapter As New SqlDataAdapter("SELECT * FROM Cities WHERE StateID=@StateID ORDER By Name", connection)
adapter.SelectCommand.Parameters.AddWithValue("@StateID", StateID)
Dim dt As New DataTable()
adapter.Fill(dt)
cbxCities.DataTextField = "CityName"
cbxCities.DataValueField = "CityID"
cbxCities.DataSource = dt
cbxCities.DataBind()
End Sub
Protected Sub cbxStates_ItemsRequested(ByVal o As Object, ByVal e As RadComboBoxItemsRequestedEventArgs) Handles cbxStates.ItemsRequested
LoadStates()
End Sub
Protected Sub cbxCities_ItemsRequested(ByVal o As Object, ByVal e As RadComboBoxItemsRequestedEventArgs) Handles cbxCities.ItemsRequested
' e.Text is the first parameter of the requestItems method
' invoked in LoadCountries method
LoadCities(e.Text)
End Sub
Protected Sub Button1_Click(sender As Object, e As EventArgs)
Literal1.Text = String.Empty
If RadComboBox1.SelectedIndex > 0 Then
Literal1.Text = String.Format(MessageTemplate, cbxStates.Text, cbxCities.Text)
End If
End Sub
End Class
<%@ Page Title="" Language="VB" MasterPageFile="~/sitemasterpage.master" AutoEventWireup="false" CodeFile="default.aspx.vb" Inherits="_default" %>
<%@ Register TagPrefix="telerik" Namespace="Telerik.Web.UI" Assembly="Telerik.Web.UI" %>
<
asp:Content
ID
=
"Content1"
ContentPlaceHolderID
=
"head"
Runat
=
"Server"
>
</
asp:Content
>
<
asp:Content
ID
=
"Content2"
ContentPlaceHolderID
=
"ContentPlaceHolder1"
Runat
=
"Server"
>
<
div
id
=
"main-content-container"
>
<
div
id
=
"home-container"
>
<
div
id
=
"home-search-text"
>
<
h2
>Join for free and start searching...</
h2
>
<
p
>Once you sign up, you're free to search our members and start finding your perfect match.</
p
>
<
div
id
=
"home-search-content"
>
<
table
cellpadding
=
"2"
class
=
"home-search-table"
>
<
tr
>
<
td
>
I'm a
</
td
>
<
td
>
<
telerik:RadComboBox
ID
=
"RadComboBox1"
Runat
=
"server"
>
<
Items
>
<
telerik:RadComboBoxItem
runat
=
"server"
Selected
=
"True"
Text
=
"Man"
Value
=
"Man"
/>
<
telerik:RadComboBoxItem
runat
=
"server"
Text
=
"Woman"
Value
=
"Woman"
/>
</
Items
>
</
telerik:RadComboBox
>
</
td
>
</
tr
>
<
tr
>
<
td
>Looking for a</
td
>
<
td
>
<
telerik:RadComboBox
ID
=
"RadComboBox2"
Runat
=
"server"
>
<
Items
>
<
telerik:RadComboBoxItem
runat
=
"server"
Text
=
"Man"
Value
=
"Man"
/>
<
telerik:RadComboBoxItem
runat
=
"server"
Selected
=
"True"
Text
=
"Woman"
Value
=
"Woman"
/>
</
Items
>
</
telerik:RadComboBox
>
</
td
>
</
tr
>
<
tr
>
<
td
>Select your State</
td
>
<
td
>
<
telerik:RadComboBox
ID
=
"cbxStates"
runat
=
"server"
CssClass
=
"ComboBox_Continents"
OnClientSelectedIndexChanging
=
"LoadStates"
OnItemsRequested
=
"cbxStates_ItemsRequested"
/>
</
td
>
</
tr
>
<
tr
>
<
td
>Select your City</
td
>
<
td
>
<
telerik:RadComboBox
ID
=
"cbxCities"
runat
=
"server"
CssClass
=
"ComboBox_Continents"
OnClientSelectedIndexChanging
=
"LoadCities"
OnItemsRequested
=
"cbxCities_ItemsRequested"
/>
</
td
>
</
tr
>
<
tr
>
<
td
> </
td
>
<
td
>
<
asp:Button
ID
=
"Button1"
runat
=
"server"
Text
=
"Explore"
OnClick
=
"Button1_Click"
/>
<
asp:Literal
runat
=
"server"
ID
=
"Literal1"
></
asp:Literal
>
</
td
>
</
tr
>
</
table
>
</
div
>
</
div
>
</
div
>
</
div
>
<
script
type
=
"text/javascript"
>
//global variables for the countries and cities comboboxes
var StatesCombo;
var citiesCombo;
function pageLoad() {
// initialize the global variables
// in this event all client objects
// are already created and initialized
statesCombo = $find("<%= cbxStates.ClientID%>");
citiesCombo = $find("<%= cbxCities.ClientID%>");
}
function LoadStates(sender, eventArgs) {
var item = eventArgs.get_item();
statesCombo.set_text("Loading...");
citiesCombo.clearSelection();
// if a continent is selected
if (item.get_index() > 0) {
// this will fire the ItemsRequested event of the
// countries combobox passing the continentID as a parameter
statesCombo.requestItems(item.get_value(), false);
}
else {
// the -Select a continent- item was chosen
statesCombo.set_text(" ");
statesCombo.clearItems();
citiesCombo.set_text(" ");
citiesCombo.clearItems();
}
}
function LoadCities(sender, eventArgs) {
var item = eventArgs.get_item();
citiesCombo.set_text("Loading...");
// this will fire the ItemsRequested event of the
// cities combobox passing the countryID as a parameter
citiesCombo.requestItems(item.get_value(), false);
}
function ItemsLoaded(sender, eventArgs) {
if (sender.get_items().get_count() > 0) {
// pre-select the first item
sender.set_text(sender.get_items().getItem(0).get_text());
sender.get_items().getItem(0).highlight();
}
sender.showDropDown();
}
</
script
>
</
asp:Content
>
<
script
type
=
"text/javascript"
>
function FilterCreated(sender, eventArgs) {
var filterMenu = sender.get_contextMenu();
filterMenu.add_showing(FilterMenuShowing);
}
function FilterMenuShowing(sender, eventArgs) {
var filter = $find("<%= RadFilter2.ClientID %>");
var currentExpandedItem = sender.get_attributes()._data.ItemHierarchyIndex;
sender.findItemByValue("Between").set_visible(false);
sender.findItemByValue("DoesNotContain").set_visible(false);
sender.findItemByValue("EndsWith").set_visible(false);
sender.findItemByValue("GreaterThan").set_visible(false);
sender.findItemByValue("GreaterThanOrEqualTo").set_visible(false);
sender.findItemByValue("IsEmpty").set_visible(false);
sender.findItemByValue("IsNull").set_visible(false);
sender.findItemByValue("LessThan").set_visible(false);
sender.findItemByValue("LessThanOrEqualTo").set_visible(false);
sender.findItemByValue("NotBetween").set_visible(false);
sender.findItemByValue("NotEqualTo").set_visible(false);
sender.findItemByValue("NotIsEmpty").set_visible(false);
sender.findItemByValue("NotIsNull").set_visible(false);
sender.findItemByValue("And").set_visible(false);
sender.findItemByValue("NotAnd").set_visible(false);
sender.findItemByValue("NotOr").set_visible(false);
sender.findItemByValue("Or").set_visible(false);
}
}
</
script
>
<
telerik:RadFilter
runat
=
"server"
ID
=
"RadFilter2"
FilterContainerID
=
"RadListView1"
ClientSettings-ClientEvents-OnFilterCreated
=
"FilterCreated"
ExpressionPreviewPosition
=
"Bottom"
>
<
FieldEditors
>
<
telerik:RadFilterTextFieldEditor
FieldName
=
"ItemName"
DisplayName
=
"ItemName"
DataType
=
"System.String"
/>
<
telerik:RadFilterTextFieldEditor
FieldName
=
"ItemCode"
DisplayName
=
"ItemCode"
DataType
=
"System.String"
/>
</
FieldEditors
>
</
telerik:RadFilter
>
<
telerik:AjaxSetting
AjaxControlID
=
"RadFilter2"
>
<
UpdatedControls
>
<
telerik:AjaxUpdatedControl
ControlID
=
"RadListView1"
LoadingPanelID
=
"RadAjaxLoadingPanel1"
/>
<
telerik:AjaxUpdatedControl
ControlID
=
"RadFilter2"
LoadingPanelID
=
"RadAjaxLoadingPanel1"
/>
</
UpdatedControls
>
</
telerik:AjaxSetting
>
Protected Sub RadFilter2_AppyExpressions(ByVal sender As Object, ByVal e As RadFilterApplyExpressionsEventArgs)
Dim provider As New RadFilterListViewQueryProvider(New List(Of RadFilterGroupOperation)())
provider.ProcessGroup(e.ExpressionRoot)
RadListView1.FilterExpressions.Add(provider.ListViewExpressions(0))
RadListView1.Rebind()
End Sub
How do you create cascading Dropdown for Resource Type. We have two resources added to appoint. Class and teacher. We want during time of creation of appointment. When user selects class. The teacher drop down should filter the data and show only teacher for that class. We are using Linqdatasource
question 1: For teacher Linqsource how can we pass parameter as class dropdown control value.
question 2: How can we define on selected index change event for dropdown class.
question 3: How can you make teacher dropdown invisible as default. and make it visible on selected index change event of Class dropdown.
<
style
type
=
"text/css"
>
div.RadGrid .rgPager .rgAdvPart
{
display:none;
}
<
asp:SiteMapDataSource
ID
=
"SiteMapDataSourceMasterPage"
runat
=
"server"
ShowStartingNode
=
"false"
StartingNodeOffset
=
"0"
/>
<
telerik:RadMenu
ID
=
"RadMenuMasterPage"
runat
=
"server"
AllowSorting
=
"True"
CellSpacing
=
"0"
DataSourceID
=
"SiteMapDataSourceMasterPage"
>
<
ItemTemplate
>
<
div
>
<
a
href
=
"<%# DataBinder.Eval(Container.DataItem, "
url") %>">
<%# DataBinder.Eval(Container.DataItem, "description") %>"
</
a
>
</
div
>
</
ItemTemplate
>
</
telerik:RadMenu
>
for
(
int
i = 0; i < RadMenuMasterPage.Items.Count; i++)
{
RadMenuMasterPage.Items[i].DataBind();
}