65.9K
CodeProject 正在变化。 阅读更多。
Home

[Silverlight] 在 Telerik Gridview 控件中使用级联下拉列表

starIconstarIconstarIconstarIconstarIcon

5.00/5 (3投票s)

2012年8月23日

CPOL
viewsIcon

40772

downloadIcon

323

在 Telerik Gridview 控件中使用级联下拉列表

引言

如何在 Telerik gridview 控件中使用级联下拉列表?

解决方案

我将解释如何在 Telerik gridview 控件中使用级联下拉列表。总体方法大致相同。回顾一下,在使用级联 DropDownList 控件时,需要执行以下任务:

  • 填充每个 DropDownList 控件。
  • 预先选择每个列表中与当前数据匹配的适当值。
  • 当用户在主下拉列表中选择一个新值时,使用一组新的相关值重新填充详细下拉列表。

这里涉及表格的模式信息。

请看:

表:City (ID,Name,ContinentCodel)

表:Continent(Code,Name)

正如我所说,你可以在 GridView 控件中以类似但并非完全相同的方式执行此操作,就像在页面中执行一样。假设你有一个在正常模式下看起来像这样的网格

<telerik:radgridview x:name="radGridView" autogeneratecolumns="True">
</telerik:radgridview>

并且看起来像这样

配置列时,设置 AutoGenerateColumns="False" 并添加如下列:

    <telerik:radgridview.columns>
			<telerik:gridviewcomboboxcolumn datamemberbinding="
			{Binding ContinentCode, Mode=TwoWay}" header="Continent" 
			displaymemberpath="Name" selectedvaluememberpath="Code">
			<telerik:gridviewcomboboxcolumn itemssourcebinding="
			{Binding AvailableCountries}" datamemberbinding="{Binding CountryID}" 
			header="Country" displaymemberpath="Name" 
			selectedvaluememberpath="ID" width="400">
		</telerik:gridviewcomboboxcolumn></telerik:gridviewcomboboxcolumn>
		</telerik:radgridview.columns>

当 Continent 改变时,使用以下代码设置国家/地区:在 Continent 选择的更改事件中,看起来像这样:在 MainPage 构造函数中附加事件,如下所示:

this.AddHandler(RadComboBox.SelectionChangedEvent, 
new Telerik.Windows.Controls.SelectionChangedEventHandler(comboSelectionChanged));

选择更改事件

void comboSelectionChanged(object sender, RadRoutedEventArgs args)
        {
            RadComboBox comboBox = (RadComboBox)args.OriginalSource;
            
            if (comboBox.SelectedValue==null 
                || comboBox.SelectedValuePath != "Code")
                return;
            
            Location location = comboBox.DataContext as Location;
            location.ContinentCode = (string)comboBox.SelectedValue;
        }
© . All rights reserved.