2016-10-01 14 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の "Immidiateウィンドウ"内のオブジェクトの属性? – 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 

あなたは、AC#バージョンをしたい場合は、単に使用して変換することができます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

まず、あなたが投稿したコードにID = "DwgSchedule"の項目がないように見えます。 第2に、グリッドの中にボタン(commandtemplateなど)があればCommandNameを "Update"と指定するだけで、Radgridのネイティブの更新コマンドが実行され、それに応じてすべてが更新されます。 – geostocker

関連する問題