2015-05-21 3 views
0

У меня есть RadGrid, который содержит MasterTableView и DetailView. Я пытаюсь изменить значение Sub Total, присутствующее в MasterTableView, при удалении DetailView Row. Я могу получить контроль в родительской таблице и могу изменить значение. Однако значение не отражается. Я попробовал несколько вариантов, например. Rebind(), а также e.Item.OwnerTableView.DataBind(). Вот как выглядит функция ItemCommand:Значение не отражается на изменении ItemCommand в RadGrid

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> ..... 

UPDATE На делать дальше копать я должен знать, что мне нужно пересвяжите сетки размещать моя операция выполняется. Однако в то время как я выступаю Пересвяжите, я получаю исключение,

[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, имя строки) +457 Telerik.Web.UI.GridTableView.PopulateDataKeys (Object dataItem) +241

Однако я не получаю эту проблему во время своих обычных операций. Я могу узнать этот datakey в противном случае для всех обычных операций. Что может пойти не так?

Обновление В соответствии с приведенной ниже ссылкой от Telerik основная таблица не будет обновляться при удалении строки таблицы подробностей.

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

Я пытаюсь Пересвяжите точно упоминается как на этом сайте. Однако я получаю исключение для DataKeyValues, как указано выше. Любые указатели действительно помогли бы.

ответ

0

Проблема решена! У меня много ссылок, которые побудили меня выполнить операцию Rebind(). Однако это начало создавать несколько других проблем. Эта проблема была решена путем написания Javascript-метода, обрабатывающего событие onclick GridButtonColumn, путем передачи контрольных идентификаторов поля из DetailView и Master Table View.

Смежные вопросы