Telerik radGrid - データソースのデータセットを=使用時のAllowAutomaticUpdatesを行うことが可能?
-
20-08-2019 - |
質問
私は(私はセッションに保存されていることを)データセットに私の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
解決
要するに、遊んで一つのキーの問題がここにあります:
あなたがグリッドをバインドするデータソースコントロールを使用しているとき、「自動」の操作のみがサポートされています。そのがののObjectDataSourceを含み、あなたがODSであなたのDALを使用して、自動アップサート/更新をサポートすることができます/削除しますので。
データテーブルに直接結合する場合は、は、手動で更新を処理しなければなりません。それは、データ・ソースは、CRUD操作のための「オート」のロジックを提供しているRadGrid-ないcontrols-だからです。幸いにも、それはそれはあなたが好むパスだ場合は、手動で更新を処理するために、難しいことではありません。例についてはTelerik.com上のデモのいくつかをチェックアウト:
http://demos.telerik.com/ ASPNET-AJAX /グリッド/例/ dataediting / editmodes / defaultcs.aspx の
あなたがしたい場合は、また、無効のViewStateとRadGridを使用することができます。それを行うための最善の方法は、(それはあなたがサービス層を介して、あなたのDALを公開することを必要としないが)、クライアント側のデータバインディングのためのグリッドのサポートを使用することです。ここではそのアプローチのためのデモをチェックアウト:
http://demos.telerik.com/ ASPNET-AJAX /グリッド/例/クライアント/ insertupdatedelete / defaultcs.aspxする
役に立てば幸い! -Todd
他のヒント
あなたの質問はすでにTelerikフォーラムで回答されています:
<のhref = "http://www.telerik.com/community/forums/aspnet/grid/is-it-possible-to-do-automaticupdates-to-a-dataset.aspx" のrel = "nofollowをnoreferrer "> http://www.telerik.com/community/forums/aspnet/grid/is-it-possible-to-do-automaticupdates-to-a-dataset.aspx の