2016-10-01 9 views
0

Я использую пакетное редактирование в radgrid с кнопкой сохранения за пределами сетки. В боковой сетке есть столбцы шаблонов, и их шаблоны редактирования имеют несколько значений. Я могу присвоить им значения. Но когда я нажимаю на кнопку Сохранить в методе ванны стороне редактирования команды соответствующий ключ newvalues ​​дает значение [объекта объекта]RadGrid - несколько элементов управления в том же столбце в шаблоне редактирования в пакетном редактировании

<telerik:GridTemplateColumn HeaderText="Dwg Sch" ColumnGroupName="WACompOrderEntry" UniqueName="DwgSchedule" HeaderTooltip="This is the date the factory has promised to provide approval drawings to the field (loaded automatically from Vista when available)"> 
         <ItemTemplate> 
          <asp:Label runat="server" ID="lblRdDwgSch" Text='<%# Eval("Vista_Sub", "{0:M/d/yy}") %>' ToolTip="This is the date the factory has promised to provide approval drawings to the field (loaded automatically from Vista when available)"></asp:Label> 
          <br /> 
          <asp:Label ID="lblDwgSch" runat="server"></asp:Label> 
         </ItemTemplate> 
         <EditItemTemplate> 
          <telerik:RadDatePicker ID="rdDwgSch" runat="server" Width="80px" DbSelectedDate='<%# Eval("Vista_Sub", "{0:M/d/yy}") %>' ToolTip="This is the date the factory has promised to provide approval drawings to the field (loaded automatically from Vista when available)"></telerik:RadDatePicker> 
          <asp:TextBox ID="txtDwgSch" runat="server" Width="80px" /> 
         </EditItemTemplate> 
        </telerik:GridTemplateColumn> 

Выше определение столбца шаблон

protected void gridMilestoneMatrixEntry_BatchEditCommand(object sender, GridBatchEditingEventArgs e) 
     { 
      if (e.Commands == null) 
      { 
       return; 
      } 
      Cache.Remove("MileStoneData"); 
      var updatedCommands = e.Commands.Where(x => x.Type == GridBatchEditingCommandType.Update); 
      var deletedCommands = e.Commands.Where(x => x.Type == GridBatchEditingCommandType.Delete); 
      List<int> updatedRecords = new List<int>(); 
      List<long> deletedRecords = new List<long>(); 
      if (updatedCommands != null && updatedCommands.Count() > 0) 
      { 
       updatedRecords = UpdateMilestoneMatrix(updatedCommands.ToList()); 
      } 

Теперь внутри Хеш ключевых значений не дают значения для объекта updatedValues ​​[ «DwgSchedule»] дает значение как [объект] объект

if (updatedValues["DwgSchedule"] != null) 
       { 
        tempStr = updatedValues["DwgSchedule"].ToString(); 
        if (!string.IsNullOrEmpty(tempStr)) 
        { 
         confDwgExp = DateTime.ParseExact(updatedValues["DwgSchedule"].ToString(), "M/d/yyyy", CultureInfo.InvariantCulture); 
        } 
        tempStr = string.Empty; 
       } 
+0

Вы пробовали проверить значение/атрибуты объекта в «Исключительном окне» Visual Studio при отладке? – geostocker

+0

Да, я попытался, его [объект, объект] – Developer

+0

Независимо от того, что происходит, я думаю, было бы разумно использовать другую стратегию при реализации вашего пакетного редактирования; когда вы нажимаете кнопку «Сохранить», почему бы просто не перебирать строки и не извлекать данные каждой ячейки и отправлять эти данные в любой источник, который вы используете? – geostocker

ответ

1

так я решил пойти о выполнении эти вещи должны были проходить через строки сетки с помощью RadGrid.Items . Это позволяет вам получить доступ к каждой отдельной строке, которая по сути дает вам доступ к отдельным элементам строки (то есть не только к ячейкам, но и всем в строке).

Private Sub RbtnSaveAll_Click(sender As Object, e As EventArgs) Handles RbtnSaveAll.Click 

    For Each item As GridDataItem In grdActivities.Items 'Iterates over the rows 
    'Get your controls by using item.findcontrol("controlname"). 
    'Then send the data of the changed controls to the datasource 
    Next 

    bindGrid(True) 'Do your bind event if necessary 
End Sub 

Если вы хотите переменного тока # версии вы можете просто конвертировать его с помощью telerik's converter

EDIT:

<asp:Button ID="btnBulkBookOn" runat="server" Text="Book On" CommandName="Update"/> 

VB-код:

 Private Sub radgrdResources_UpdateCommand(sender As Object, e As GridCommandEventArgs) Handles radgrdResources.UpdateCommand 
' This will be invoked when you clikc the button and fire off the Radgrid's native save. 
    End Sub 
+0

Я могу найти элементы управления, они являются метками, поскольку пакетное редактирование уже закрыто, но их текст пуст. – Developer

+0

Не могли бы вы добавить изменения с кодом? Я мог бы дать более подробную помощь, затем – geostocker

+0

Прежде всего, казалось бы, в коде, который вы отправили, нет элемента с идентификатором = «DwgSchedule». Во-вторых, до тех пор, пока у вас есть кнопка внутри сетки (commandtemplate или что-то еще?), Вы cna просто укажете CommandName как «Update», и собственная команда обновления Radgrid будет запущена и обновлена ​​соответствующим образом. – geostocker