tbo*_*one 3 asp.net asp.net-ajax telerik radgrid
我将radGrid的数据源设置为数据集(我已存储在会话中).我启用了AllowAutomaticUpdates和EnableViewState,实现了NeedDataSource,设置了DatakeyNames等(参见下面的代码)
但是,当我按下编辑按钮并进行更改并按更新链接时,记录不会更新并退出编辑模式.....它只是保持编辑模式,并且不会发生任何错误.
所以,问题是....有没有人知道带有EnableViewstate的radGrid是否支持AutomaticUpdates,因此网格中的更改将自动推送到它所绑定的数据集中?
有人会认为你可以阅读文档,但我一直无法找到明确的答案.
谢谢
<telerik:Radgrid id="grid" runat="server" AllowPaging="True" AllowSorting="True" AllowAutomaticUpdates="true"
AutoGenerateEditColumn="True" GridLines="None" >
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
Dim data As New DataGateway
Dim ds As DataSet = data.GetEmployeesByProgram(Year:=2009, ProgramName:="Long Term Incentive Stock Program")
Dim dt As DataTable = ds.Tables(0)
ds.Tables(0).PrimaryKey = New DataColumn() {dt.Columns("EmployeeNum"), dt.Columns("ProgramName"), dt.Columns("Year")}
Session("datasource") = ds
With Me.grid
.AllowAutomaticUpdates = True
.AutoGenerateColumns = True
.AllowSorting = True
.AutoGenerateEditColumn = True
.EnableViewState = True 'IS REQUIRED!!!
Me.grid.MasterTableView.AllowAutomaticUpdates = True
Me.grid.MasterTableView.EditMode = GridEditMode.InPlace
End With
End If
End Sub
Private Sub grid_NeedDataSource(ByVal source As Object, ByVal e As Telerik.Web.UI.GridNeedDataSourceEventArgs) Handles grid.NeedDataSource
Debug.WriteLine("NeedDataSource: " & e.RebindReason.ToString)
Dim ds As DataSet = CType(Session("datasource"), DataSet)
Me.grid.MasterTableView.DataKeyNames = New String() {"EmployeeNum", "ProgramName", "Year"}
Me.grid.DataSource = ds
End Sub
Run Code Online (Sandbox Code Playgroud)
简而言之,这里有一个关键问题:
仅当您使用数据源控件绑定网格时,才支持"自动"操作.这包括 ObjectDataSource,因此您可以将DAL与ODS一起使用,然后支持自动upserts/updates/deletes.
直接绑定到数据表时,必须手动处理更新.那是因为它是数据源控件 - 而不是RadGrid--为CRUD操作提供"自动"逻辑.幸运的是,如果这是您喜欢的路径,那么手动处理更新并不困难.查看Telerik.com上的一些演示示例:
http://demos.telerik.com/aspnet-ajax/grid/examples/dataediting/editmodes/defaultcs.aspx
如果需要,还可以使用已禁用ViewState的RadGrid.最好的方法是使用Grid对客户端数据绑定的支持(尽管这需要您通过服务层公开DAL).在这里查看该方法的演示:
http://demos.telerik.com/aspnet-ajax/grid/examples/client/insertupdatedelete/defaultcs.aspx
希望有所帮助!-Todd
| 归档时间: |
|
| 查看次数: |
12923 次 |
| 最近记录: |