0

我有一个包含 MasterTableView 和 DetailView 的 RadGrid。我正在尝试在删除 DetailView 行时更改 MasterTableView 中存在的 Sub Total 的值。我能够在父表中获得控件并能够更改值。然而,价值并没有体现出来。我尝试了多个选项,例如 Rebind() 方法以及 e.Item.OwnerTableView.DataBind()。这是我的 ItemCommand 函数的样子

    Private Sub dbgView_ItemCommand(ByVal source As System.Object, ByVal e As Telerik.Web.UI.GridCommandEventArgs) Handles dbgView.ItemCommand
            If e.CommandName.ToLower.Equals(GlobalConstants.Key_Delete_CommandName) And e.Item.OwnerTableView.Name = "Tax" Then
                   dataItem = DirectCast(e.Item.OwnerTableView.ParentItem, GridDataItem)
                   Dim numSubTotal As NumericBox = dataItem.FindControl("numAmount")
                   numSubTotal.Text = "New Value"
                   ' e.Item.OwnerTableView.DataBind()
            End If

有人可以帮我理解为什么新价值没有反映吗?这是我的网格的样子

<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server">
                <AjaxSettings>
                    <telerik:AjaxSetting AjaxControlID="dbgView">
                        <UpdatedControls>
                            <telerik:AjaxUpdatedControl ControlID="dbgView"></telerik:AjaxUpdatedControl>
                           </telerik:AjaxUpdatedControl>
                        </UpdatedControls>
                    </telerik:AjaxSetting>
                </AjaxSettings>
            </telerik:RadAjaxManager>
            <telerik:RadGrid ID="dbgView" runat="server" AutoGenerateColumns="False" AllowPaging="True"
                PageSize="5" GridLines="Horizontal" Skin="Office2010Blue" Style="border: 0 none"
                AllowAutomaticInserts="True">
                <PagerStyle Mode="NumericPages"></PagerStyle>
                <MasterTableView Width="100%" CommandItemDisplay="Top" Name="GLLine" AllowNaturalSort="False"
                    PageSize="10" DataKeyNames="Key" NoDetailRecordsText="No records to display.">
                    <DetailTables> .....

更新 在进行进一步挖掘时,我知道我需要在执行操作后重新绑定网格。但是,当我执行重新绑定时,我遇到了异常

[HttpException (0x80004005): DataBinding: 'System.Collections.DictionaryEntry' 不包含名为 'TaxID' 的属性。] System.Web.UI.DataBinder.GetPropertyValue(Object container, String propName) +384 Telerik.Web。 UI.GridTableView.PopulateDataKey(Object dataItem, DataKey key, String name) +457 Telerik.Web.UI.GridTableView.PopulateDataKeys(Object dataItem) +241

但是,我在正常操作期间没有遇到此问题。否则,对于所有正常操作,我都可以找到此数据密钥。可能出了什么问题?

更新 根据 Telerik 的以下链接,删除详细表行时不会更新主表。

http://www.telerik.com/forums/master-grid-not-rebinding-after-detail-table-delete-command

我正在尝试重新绑定,正如本网站中提到的那样。但是,如上所述,我对 DataKeyValues 感到异常。任何指针都会有帮助。

4

1 回答 1

0

问题已解决!!我有很多链接指导我执行 Rebind() 操作。然而,这开始产生多个其他问题。通过从 DetailView 和 Master Table View 传递字段的控件 ID,编写一个处理 GridButtonColumn 的 onclick 事件的 Javascript 方法来处理此问题。

于 2015-05-24T08:45:48.640 回答