Telerik radGrid - من الممكن استخدامAllowAutomaticUpdates عندما يكون Datasource = مجموعة بيانات؟

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

سؤال

أقوم بتعيين مصدر بيانات radGrid الخاص بي على مجموعة بيانات (التي قمت بتخزينها في الجلسة).لقد قمت بتمكينAllowAutomaticUpdates وEnableViewState، وقمت بتنفيذ NeedDataSource، وتعيين DatakeyNames، وما إلى ذلك.(انظر الكود أدناه)

ومع ذلك، عندما أضغط على زر تحرير وأجري تغييرًا وأضغط على رابط التحديث، لا يتم تحديث السجل ويترك وضع التحرير..... بل يبقى فقط في وضع التحرير، ولا يحدث أي خطأ من أي نوع.

لذا، السؤال هو.... هل يعرف أحد ما إذا كان radGrid مع EnableViewstate يدعم التحديث التلقائي، لذلك سيتم دفع التغييرات في الشبكة تلقائيًا إلى مجموعة البيانات المرتبطة بها؟

قد يعتقد المرء أنه يمكنك قراءة الوثائق، لكنني لم أتمكن من العثور على إجابة محددة.

شكرًا


<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، بحيث يمكنك استخدام DAL الخاص بك مع المواد المستنفدة للأوزون ومن ثم دعم upserts السيارات / التحديثات / حذف.

وعند الربط مباشرة إلى جدول البيانات، يجب التعامل مع التحديثات يدويا. هذا لأنه هو controls- مصدر البيانات لا RadGrid- التي يتم تزويد "السيارات" المنطق لعمليات الخام. لحسن الحظ، فإنه ليس من الصعب التعامل مع التحديث يدويا إذا كان هذا هو المسار الذي تفضله. تحقق من بعض العروض على Telerik.com للحصول على أمثلة:

http://demos.telerik.com/ ASPNET-اياكس / شبكة / أمثلة / dataediting / editmodes / defaultcs.aspx

ويمكنك أيضا استخدام RadGrid مع حالة العرض تعطيل إذا كنت ترغب في ذلك. أفضل طريقة للقيام بذلك هو استخدام دعم الشبكة لربط البيانات من جانب العميل (على الرغم من أن لا تتطلب منك فضح DAL عبر طبقة الخدمة). تحقق من العروض لهذا النهج هنا:

http://demos.telerik.com/ ASPNET-اياكس / شبكة / أمثلة / العميل / insertupdatedelete / defaultcs.aspx

وعلى أمل أن يساعد! -Todd

نصائح أخرى

لقد تمت الإجابة على سؤالك بالفعل في منتديات Telerik:

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top