TELERIK RADGRID- DataSource = Dataset 일 때 허용 해제 UPDATES를 사용할 수 있습니까?

StackOverflow https://stackoverflow.com/questions/488039

문제

Radgrid의 데이터 소스를 데이터 세트 (세션에 저장 한)로 설정하고 있습니다. alludautomaticupdates 및 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가 아닌 데이터 소스 컨트롤이기 때문입니다. 다행히도, 당신이 선호하는 경로 인 경우 업데이트를 수동으로 처리하는 것은 어렵지 않습니다. 예제는 Telerik.com의 데모를 확인하십시오.

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

원하는 경우 ViewState Disabled와 함께 Radgrid를 사용할 수도 있습니다. 이를 수행하는 가장 좋은 방법은 클라이언트 측 데이터베이닝에 그리드의 지원을 사용하는 것입니다 (서비스 계층을 통해 DAL을 노출해야 함). 여기에서 해당 접근법에 대한 데모를 확인하십시오.

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

도움이되기를 바랍니다! -todd

다른 팁

귀하의 질문은 이미 Telerik 포럼에서 답변되었습니다.

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

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top