telerik嵌套网格问题

telerik嵌套网格问题

问题描述:

1.我在父网格中有一个网格,嵌套网格中有一个链接按钮。telerik嵌套网格问题

2.对于链接按钮,我需要使用嵌套网格的item命令事件,或者我也可以使用父网格的item命令。

3.问题是,当我点击嵌套网格内的链接按钮,然后项目命令事件不会被触发的嵌套网格。但在母网格的情况下它的工作正常。

4.我已经尝试过处理程序和item创建的事件,以便在代码后面或aspx中使用处理程序。但没有任何帮助让我为嵌套网格命令事件命中。

5.以前在中继器的情况下,有一个项目命令处理所有的网格。我已经为孩子和家长尝试了不同的项目命令事件,但它也没有工作。

编辑:这里是一个代码示例

Public Sub grd_ItemCommand(ByVal source As Object, _ 
               ByVal e As nsTelerik.GridCommandEventArgs) _ 
               Handles grdCollClaimLevel.ItemCommand, grdCollLineLevel.ItemCommand, _ 
               grdCollLineValues.ItemCommand, grdCollPartLevel.ItemCommand, _ 
               grdPTNClaimLevel.ItemCommand, _ 
               grdPTNLineLevel.ItemCommand, grdPTNLineValues.ItemCommand 


     Dim uicCharMain As nsPTNWebContext.CharMainUIC 
     Dim uicCollDetl As nsPTNWebContext.CollDetlUIC 
     Dim uicPTNItem As nsPTNWebContext.PatternItemUIC 

     Try 

      Select Case e.CommandName 
       Case c_sBtnChar 

        uicCharMain = New nsPTNWebContext.CharMainUIC() 

        With uicCharMain 
         .CharID = CStr(e.CommandArgument) 
         .Busns_Event_Cd = m_uicRsltMatc.BusEvent 
         .PTN_LOB_Cd = m_uicRsltMatc.LOB 
         .UserID = m_uicRsltMatc.UserID 
         .ModePTN = m_uicRsltMatc.ModePattern 
         .ModeChar = m_uicRsltMatc.ModeChar 
         .ModeColl = m_uicRsltMatc.ModeColl 
         .ModeRept = m_uicRsltMatc.ModeRept 
         .PageMode = nsPTNWebContext.CharMainUIC.enPageMode.View 
         .TabMode = m_uicRsltMatc.TabMode 
        End With 

        Me.PageState.Save() 
        Me.Navigation.AddMe(c_sCharMain) 
        Me.Navigation.Transfer(uicCharMain) 

       Case c_sBtnColl 

        uicCollDetl = New nsPTNWebContext.CollDetlUIC(_ 
         CStr(e.CommandArgument), _ 
         m_uicRsltMatc.BusEvent, _ 
         m_uicRsltMatc.LOB) 

        With uicCollDetl 
         .UserID = m_uicRsltMatc.UserID 
         .ModeColl = m_uicRsltMatc.ModeColl 
         .PageMode = nsPTNWebContext.CollDetlUIC.enPageMode.View 

         .ModePTN = m_uicRsltMatc.ModePattern 
         .ModeChar = m_uicRsltMatc.ModeChar 
         .ModeRept = m_uicRsltMatc.ModeRept 
         .BusEvent = m_uicRsltMatc.BusEvent 
         .LOB = m_uicRsltMatc.LOB 
         .TabMode = m_uicRsltMatc.TabMode 
        End With 

        Me.PageState.Save() 
        Me.Navigation.AddMe(c_sCollDetails) 
        Me.Navigation.Transfer(uicCollDetl) 

       Case c_sBtnPattern 

        uicPTNItem = New nsPTNWebContext.PatternItemUIC(CStr(e.CommandArgument)) 

        With uicPTNItem 
         .BusEvent = m_uicRsltMatc.BusEvent 
         .LOB = m_uicRsltMatc.LOB 
         .UserID = m_uicRsltMatc.UserID 
         .ModeChar = m_uicRsltMatc.ModeChar 
         .ModeColl = m_uicRsltMatc.ModeColl 
         .ModePattern = m_uicRsltMatc.ModePattern 
         .ModeRept = m_uicRsltMatc.ModeRept 
         .CharID = m_uicRsltMatc.CharID 
         .CollID = m_uicRsltMatc.CollID 
         .PageMode = nsPTNWebContext.PatternItemUIC.enPageMode.View 
         .TabMode = m_uicRsltMatc.TabMode 
        End With 

        Me.PageState.Save() 
        Me.Navigation.AddMe(c_sPatternItem) 
        Me.Navigation.Transfer(uicPTNItem) 

      End Select 

     Finally 
      Cleanup(uicCharMain) 
      uicCharMain = Nothing 
      Cleanup(uicCollDetl) 
      uicCollDetl = Nothing 
      Cleanup(uicPTNItem) 
      uicPTNItem = Nothing 

     End Try 
    End Sub 

而这里的标记

 <tel:radgrid runat="server" id="grdPTNPartLevel" width="100%" autogeneratecolumns="false" 
      horizontalalign="Justify"> 
      <mastertableview width="100%"> 
       <NestedViewTemplate> 
        <tel:RadGrid runat="server" ID="grdPTNPartValues" Width="100%" AutoGenerateColumns="false" 
         HorizontalAlign="Justify" OnItemDataBound="grdPTNPartValues_ItemDataBound"> 
        </tel:RadGrid> 
        <tel:RadGrid runat="server" ID="grdPTNLineLevel" Width="100%" AutoGenerateColumns="false" 
         HorizontalAlign="Justify" OnItemDataBound="grdPTNLineLevel_ItemDataBound" OnItemCommand="grd_ItemCommand"> 
         <MasterTableView Width="100%"> 
          <NestedViewTemplate> 
           <tel:RadGrid runat="server" ID="grdPTNLineValues" Width="100%" AutoGenerateColumns="false" 
            HorizontalAlign="Justify" OnItemDataBound="grdPTNLineValues_ItemDataBound" OnItemCommand="grd_ItemCommand"> 
           </tel:RadGrid> 
          </NestedViewTemplate> 
         </MasterTableView> 
        </tel:RadGrid> 
       </NestedViewTemplate> 
      </mastertableview> 
     </tel:radgrid> 
+0

有些代码可以帮助说明问题。你能发布整个网格的标记吗? – Aaron 2010-03-17 15:01:42

+0

谢谢,我刚刚发布的标记 – Jeff 2010-03-17 16:13:56

+0

也此示例http://demos.telerik.com/aspnet-ajax/grid/examples/dataediting/threelevel/defaultcs.aspx可以帮助 – dankyy1 2010-09-16 08:09:24

没有看到你的一些代码,我不能在这个地方的问题在于相当肯定。我尝试的第一件事情是类似于telerik在其API here中的内容。在对命令项进行任何操作之前,您需要确保使用正确的OwnerTable。使用这样的东西,确定该项目是为正确的表,然后你应该有权访问它。

//identify to which table belongs the currently bound item 
     if (e.Item.OwnerTableView.Name == "MyUniqueTableName") 
     { 
     //process requested operations 
     } 

编辑

我看到你想要做什么。我想你可能会以错误的方式去做。看看telerik demo page here上的层次结构部分。它的内容非常丰富,我有一个4层的层次结构,在短短几个小时内完成了一些代码,所有代码都只有一个radgrid。

+0

我听到雅,我只是不可以灵活地改变这个特定项目的大部分方法 – Jeff 2010-03-17 16:30:42

你好,在嵌套视图中,只有你可以绑定一条记录,为了得到嵌套视图内的控件,我使用了类似这样的东西。

protected void gvwData_ItemDataBound(object sender, Telerik.Web.UI.GridItemEventArgs e) 
{ 
    if (e.Item.ItemType == GridItemType.NestedView) 
    { 
     GridDataItem item = e.Item as GridDataItem; 
     HtmlGenericControl InfoDvi= (HtmlGenericControl)e.Item.FindControl("DivWithServerSideTagName"); 
    } 
}