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>
没有看到你的一些代码,我不能在这个地方的问题在于相当肯定。我尝试的第一件事情是类似于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。
我听到雅,我只是不可以灵活地改变这个特定项目的大部分方法 – 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");
}
}
有些代码可以帮助说明问题。你能发布整个网格的标记吗? – Aaron 2010-03-17 15:01:42
谢谢,我刚刚发布的标记 – Jeff 2010-03-17 16:13:56
也此示例http://demos.telerik.com/aspnet-ajax/grid/examples/dataediting/threelevel/defaultcs.aspx可以帮助 – dankyy1 2010-09-16 08:09:24