3

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
4

2 に答える 2

8

要するに、ここには重要な問題が 1 つあります。

「自動」操作は、データ ソース コントロールを使用してグリッドをバインドしている場合にのみサポートされます。これには ObjectDataSource が含まれているため、ODS で DAL を使用して、自動 upserts/updates/deletes をサポートできます。

データ テーブルに直接バインドする場合は、更新を手動で処理する必要があります。これは、CRUD 操作の「自動」ロジックを提供しているのは、RadGrid ではなくデータ ソース コントロールであるためです。幸いなことに、更新を手動で処理することは難しくありません。例として、Telerik.com のいくつかのデモを確認してください。

http://demos.telerik.com/aspnet-ajax/grid/examples/dataediting/editmodes/defaultcs.aspx

必要に応じて、ViewState を無効にして RadGrid を使用することもできます。これを行う最善の方法は、グリッドのクライアント側データバインディングのサポートを使用することです (ただし、サービス層を介して DAL を公開する必要があります)。ここでそのアプローチのデモをチェックしてください。

http://demos.telerik.com/aspnet-ajax/grid/examples/client/insertupdatedelete/defaultcs.aspx

それが役立つことを願っています! -トッド

于 2009-02-06T05:51:16.887 に答える
2

あなたの質問は、Telerik フォーラムで既に回答されています。

http://www.telerik.com/community/forums/aspnet/grid/is-it-possible-to-do-automaticupdates-to-a-dataset.aspx

于 2009-02-05T15:34:10.847 に答える