This is a migrated thread and some comments may be shown as answers.

add new button is not appear in the second level grid

3 Answers 105 Views
Grid
This is a migrated thread and some comments may be shown as answers.
koteswararao
Top achievements
Rank 1
koteswararao asked on 03 Feb 2012, 02:49 PM
hi,
i am using the telerik grid in my project with three hierarchical level i add the 

CommandItemDisplay="Top" CommandItemSettings-AddNewRecordImageUrl="add.png" for all the three level grids but when i expand the all levels i didn't see any add new button at second level it appearing at first and last but missing at middle what can i dot to solve this problem

please see the attached image to see the bug

if you want full code please download from the following link     download the code

3 Answers, 1 is accepted

Sort by
0
Jayesh Goyani
Top achievements
Rank 2
answered on 04 Feb 2012, 09:26 AM
Hello koteswararao,


Protected Sub dgProduct_DetailTableDataBind(ByVal sender As Object, ByVal e As Telerik.Web.UI.GridDetailTableDataBindEventArgs) Handles dgProduct.DetailTableDataBind
      e.DetailTableView.CommandItemDisplay = Telerik.Web.UI.GridCommandItemDisplay.Top
 
  End Sub


--Your whole Code------------
<asp:ScriptManager ID="ScriptManager1" runat="server">
      </asp:ScriptManager>
      <telerik:RadGrid ID="dgProduct" runat="server" AutoGenerateColumns="false" AutoGenerateHierarchy="true"
          GroupingEnabled="true" AllowMultiRowSelection="false" AllowAutomaticDeletes="True"
          AllowAutomaticInserts="True" AllowAutomaticUpdates="True">
          <MasterTableView EditMode="InPlace" Name="product" DataKeyNames="PKProductID" CommandItemDisplay="Top"
              CommandItemSettings-AddNewRecordImageUrl="add.png" CommandItemSettings-AddNewRecordText="Add New Style"
              AlternatingItemStyle-BackColor="#F2F3F5" ItemStyle-BackColor="#E7E7FF" CommandItemSettings-ShowRefreshButton="false"
              HeaderStyle-BackColor="LightGray" HierarchyLoadMode="ServerOnDemand">
              <Columns>
                  <telerik:GridBoundColumn DataField="PKProductID" HeaderText="PKProductID" Visible="false" />
                  <telerik:GridEditCommandColumn UniqueName="Edit" ButtonType="ImageButton" CancelText="cancel"
                      EditText="edit" InsertText="insert">
                  </telerik:GridEditCommandColumn>
                  <telerik:GridTemplateColumn HeaderText="Title">
                      <ItemTemplate>
                          <%#Eval("Language1Title")%>
                      </ItemTemplate>
                      <EditItemTemplate>
                          <asp:TextBox ID="txtColorTitle" runat="server" Text='<%#Eval("Language1Title") %>'
                              ReadOnly="true"></asp:TextBox>
                      </EditItemTemplate>
                  </telerik:GridTemplateColumn>
              </Columns>
              <DetailTables>
                  <telerik:GridTableView DataMember="colors" HierarchyLoadMode="ServerOnDemand" Name="Colors"
                      DataKeyNames="pkproductid" Width="300px" CommandItemDisplay="Top" CommandItemSettings-AddNewRecordImageUrl="add.png"
                      CommandItemSettings-AddNewRecordText="Add New Size" AlternatingItemStyle-BackColor="#F2F3F5"
                      CommandItemSettings-ShowRefreshButton="false" ItemStyle-BackColor="#E7E7FF" HeaderStyle-BackColor="LightGray">
                      <Columns>
                          <telerik:GridEditCommandColumn ButtonType="ImageButton" UniqueName="EditCommandColumn1">
                              <HeaderStyle Width="80px" />
                              <ItemStyle CssClass="MyImageButton" />
                          </telerik:GridEditCommandColumn>
                          <telerik:GridBoundColumn DataField="PKProductid" HeaderText="PKProductid" Visible="false" />
                          <telerik:GridTemplateColumn HeaderText="Title">
                              <ItemTemplate>
                                  <%#Eval("Language1Title")%>
                              </ItemTemplate>
                              <EditItemTemplate>
                                  <asp:TextBox ID="txtColorTitle" runat="server" Text='<%#Eval("Language1Title") %>'
                                      ReadOnly="true"></asp:TextBox>
                              </EditItemTemplate>
                          </telerik:GridTemplateColumn>
                      </Columns>
                      <DetailTables>
                          <telerik:GridTableView DataMember="Sizes" HierarchyLoadMode="ServerOnDemand" Width="300px"
                              Name="sizes" DataKeyNames="pkproductid" CommandItemDisplay="Top" CommandItemSettings-AddNewRecordImageUrl="add.png"
                              CommandItemSettings-AddNewRecordText="Add New Size" AlternatingItemStyle-BackColor="#F2F3F5"
                              CommandItemSettings-ShowRefreshButton="false" ItemStyle-BackColor="#E7E7FF" HeaderStyle-BackColor="LightGray">
                              <Columns>
                                  <telerik:GridEditCommandColumn ButtonType="ImageButton" UniqueName="EditCommandColumn1">
                                      <HeaderStyle Width="80px" />
                                      <ItemStyle CssClass="MyImageButton" />
                                  </telerik:GridEditCommandColumn>
                                  <telerik:GridBoundColumn DataField="PKProductid" HeaderText="PKProductid" Visible="false" />
                                  <telerik:GridTemplateColumn HeaderText="Title">
                                      <ItemTemplate>
                                          <%#Eval("Language1Title")%>
                                      </ItemTemplate>
                                      <EditItemTemplate>
                                          <asp:TextBox ID="txtSizeTitle" runat="server" Text='<%#Eval("Language1Title") %>'
                                              ReadOnly="true"></asp:TextBox>
                                      </EditItemTemplate>
                                  </telerik:GridTemplateColumn>
                              </Columns>
                          </telerik:GridTableView>
                      </DetailTables>
                  </telerik:GridTableView>
              </DetailTables>
              <EditFormSettings>
                  <EditColumn Reorderable="false" Resizable="false" />
              </EditFormSettings>
          </MasterTableView>
      </telerik:RadGrid>
Public Class WebForm1
    Inherits System.Web.UI.Page
 
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        dgProduct.DataSource = createDataset()
    End Sub
 
    Public Function createDataset() As DataSet
 
        Dim dtMain As DataTable = New DataTable()
        Dim dtcolumn1 As DataColumn = New DataColumn("pkproductid", GetType(Integer))
        Dim dtcolumn2 As DataColumn = New DataColumn("fkproductid", GetType(Integer))
        Dim dtcolumn3 As DataColumn = New DataColumn("Language1Title", GetType(String))
 
        dtMain.Columns.Add(dtcolumn1)
        dtMain.Columns.Add(dtcolumn2)
        dtMain.Columns.Add(dtcolumn3)
        ''Color data
        Dim dtColor As DataTable = New DataTable()
        Dim dtcolumn11 As DataColumn = New DataColumn("pkproductid", GetType(Integer))
        Dim dtcolumn21 As DataColumn = New DataColumn("fkproductid", GetType(Integer))
        Dim dtcolumn31 As DataColumn = New DataColumn("Language1Title", GetType(String))
 
        dtColor.Columns.Add(dtcolumn11)
        dtColor.Columns.Add(dtcolumn21)
        dtColor.Columns.Add(dtcolumn31)
 
        ''Size data
        Dim dtSize As DataTable = New DataTable()
        Dim dtcolumn12 As DataColumn = New DataColumn("pkproductid", GetType(Integer))
        Dim dtcolumn22 As DataColumn = New DataColumn("fkproductid", GetType(Integer))
        Dim dtcolumn32 As DataColumn = New DataColumn("Language1Title", GetType(String))
 
        dtSize.Columns.Add(dtcolumn12)
        dtSize.Columns.Add(dtcolumn22)
        dtSize.Columns.Add(dtcolumn32)
 
        For i = 0 To 3
            Dim drowmain As DataRow = dtMain.NewRow()
            Dim strProduct As String = "1" & i
            drowmain(0) = Convert.ToInt32(strProduct)
            drowmain(1) = DBNull.Value
            drowmain(2) = "mainproduct"
 
            Dim drowColor As DataRow = dtColor.NewRow()
            Dim strcolor As String = "4" & i
            drowColor(0) = Convert.ToInt32(strcolor)
            drowColor(1) = Convert.ToInt32(strProduct)
            drowColor(2) = "colorProduct"
 
            Dim drowdtSize As DataRow = dtSize.NewRow()
            Dim strdtSize As String = "5" & i
            drowdtSize(0) = Convert.ToInt32(strdtSize)
            drowdtSize(1) = Convert.ToInt32(strcolor)
            drowdtSize(2) = "sizeProduct"
            dtMain.Rows.Add(drowmain)
            dtColor.Rows.Add(drowColor)
            dtSize.Rows.Add(drowdtSize)
            dtMain.AcceptChanges()
            dtColor.AcceptChanges()
            dtSize.AcceptChanges()
        Next
 
        Dim ds As DataSet = New DataSet()
        ds.Tables.Add(dtMain)
        ds.Tables.Add(dtColor)
        ds.Tables.Add(dtSize)
        ds.AcceptChanges()
        ds.Relations.Add(New DataRelation("main-color", dtMain.Columns(0), dtColor.Columns(1)))
        ds.Relations.Add(New DataRelation("color-size", dtColor.Columns(0), dtSize.Columns(1)))
        Return ds
    End Function
 
    Protected Sub dgProduct_DetailTableDataBind(ByVal sender As Object, ByVal e As Telerik.Web.UI.GridDetailTableDataBindEventArgs) Handles dgProduct.DetailTableDataBind
        e.DetailTableView.CommandItemDisplay = Telerik.Web.UI.GridCommandItemDisplay.Top
 
    End Sub
End Class



Thanks,
Jayesh Goyani
0
koteswararao
Top achievements
Rank 1
answered on 04 Feb 2012, 10:53 AM
hi Jayesh Goyani,

Thank you the problem was solved with you great supporting , i got another problem now can you please see the scenario

when i click on the edit one column contain dropdown  this was filled with another datasource

based on the dropdown selected value other two columns in the same row is filled the values filled with correct values when i click on edit ,
but when comes to insert  (insert new record) case there the drop down was filled with object datasource values the first item is selected but when in this case i want to fill the two textboes on the same row with corresponding to the dropdown value when use manually change the item in the drop down the values are fill in the text box correctly , same thing we do at first time also

means we want to raise the selected change event of the drop down when we click on new record button

Thanks & Regards,
m.koteswara Rao
0
Antonio Stoilkov
Telerik team
answered on 08 Feb 2012, 03:00 PM
Hello Koteswararao,

You could achieve your scenario by subscribing to the Grid ItemCommand event and checking if the CommandName is RadGrid.InitInsertCommandName and implementing the same logic that is in the drop down SelectedIndexChanged event. I have assembled a sample code that demonstrates the described solution.
protected void RadGrid1_ItemCommand(object sender, GridCommandEventArgs e)
{
    if (e.CommandName == RadGrid.InitInsertCommandName)
    {
        //implement same logic as in the SelectedIndexChange of the drop down
    }
}

All the best,
Antonio Stoilkov
the Telerik team
Sharpen your .NET Ninja skills! Attend Q1 webinar week and get a chance to win a license! Book your seat now >>
Tags
Grid
Asked by
koteswararao
Top achievements
Rank 1
Answers by
Jayesh Goyani
Top achievements
Rank 2
koteswararao
Top achievements
Rank 1
Antonio Stoilkov
Telerik team
Share this question
or