Silverlight Telerik RadGridView动态增删行及行列操作(转载)
???? 也發現有控件問題。
1 ///增加行2 radgridview.BeginInsert();
? 或
使用ShowInsertRow=true;
1 radgridview.ShowInsertRow=true;???????2.刪行
????????? RadGridView中也提供刪除行方法,這個需要使用Teleri中的命令telerik:RadGridViewCommands.Delete,
同時設置CommandParameter對行綁定
<telerik:GridViewColumn Header="Delete" >
??????? <telerik:GridViewColumn.CellTemplate>
??????????? <DataTemplate>
??????????????? <telerik:RadButton Content="Delete"
???????????????????? Command="telerik:RadGridViewCommands.Delete"
??????????????????????????????????? CommandParameter="{Binding}" />
??????????? </DataTemplate>
??????? </telerik:GridViewColumn.CellTemplate>
??? </telerik:GridViewColumn>
如圖:
????????? 寫成如下方式也與上面效果一樣:
<telerik:GridViewColumn Header="Delete" >
??????? <telerik:GridViewColumn.CellTemplate>
??????????? <DataTemplate>
??????????????? <telerik:RadButton Content="Delete"
???????????????????????????????????????? ///調用方法
???????????????????????????????????????? Click="DelRow_Click" />
??????????? </DataTemplate>
??????? </telerik:GridViewColumn.CellTemplate>
??? </telerik:GridViewColumn>
2 {
3 var deletecommand = RadGridViewCommands.Delete as RoutedUICommand;
4 deletecommand.Execute(radgridview.CurrentItem, radgridview);
5 }
RadGridViewCommands命令還有很多,有時間可以看下
3.行數據獲取
???????????? 使用這控件中,發現取數據不像Datagrid那樣獲取,開始也無法理解,仔細看下文檔,獲取方式還真不同。
?????????????將RadGridView.Items中每項Item轉換為GridRowView的,在獲取GridRowView中的每列
??????????? 使用RadGridView.ItemContainerGenerator.ContainerFromItem()方法
foreach (var item in radgridview.Items)
?{
????? GridViewRow row = radgridview.ItemContainerGenerator.ContainerFromItem(item) as GridViewRow;
????? int level=Convert.ToInt32((row.Cells[0].Content as TextBox).Text);
????? double min=Convert.ToDouble((row.Cells[1].Content as TextBox).Text);
????? double max=Convert.ToDouble((row.Cells[2].Content as TextBox).Text);
????? Color c=(row.Cells[3].Content as RadColorPicker).SelectedColor;
????????????????? ......
?}
4.設置新行的默認初始值
?????????? 通過 BeginInsert()方法增加新行,需要設置每行每列的初始值,需要在RowLoaded方法中寫方法
RadGrid_RowLoaded(object sender, Telerik.Windows.Controls.GridView.RowLoadedEventArgs e)
private void radgridview_RowLoaded(object sender, Telerik.Windows.Controls.GridView.RowLoadedEventArgs e)
?{
??????????????? ///是標題欄返回
???????????? if (e.Row is GridViewHeaderRow)
???????????????? return;
?
???????????? int rownumber=(sender as RadGridView).Items.Count;
?
???????????? ///設置每列初始值
???????????? (e.Row.Cells[0].Content as TextBox).Text = rownumber.ToString();
???????????? ///顏色隨機
???????????? Random rand = new Random();
???????????? byte r = Convert.ToByte(rand.Next(255));
???????????? byte g= Convert.ToByte(rand.Next(255));
???????????? byte b= Convert.ToByte(rand.Next(255));
???????????? (e.Row.Cells[3].Content as RadColorPicker).SelectedColor = Color.FromArgb(180,r,g,b);
?}
總結
以上是生活随笔為你收集整理的Silverlight Telerik RadGridView动态增删行及行列操作(转载)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Javascript中的对象和原型(一)
- 下一篇: orcal 数据库密码修改(表密码,sy