проблема вложенной сетки telerik - PullRequest
1 голос
/ 17 марта 2010

1. Здесь у меня есть сетка в родительской сетке, а во вложенной сетке есть кнопка ссылки.

2. Для кнопки ссылки мне нужно использовать событие команды элемента вложенной сетки.или я также могу использовать команду элемента родительской сетки.

3. Проблема заключается в том, что, когда я нажимаю кнопку ссылки во вложенной сетке, событие команды элемента не запускается для nestedgrid.But в случае, еслиродительской сетки работает нормально.

4. Я пробовал обработчики и событие создания элемента, чтобы использовать обработчики в коде позади или в 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>

Ответы [ 2 ]

0 голосов
/ 24 марта 2011

Здравствуйте, во вложенном представлении только вы можете связать одну запись, чтобы получить элементы управления внутри вложенного представления, я использую что-то подобное

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");
    }
}
0 голосов
/ 17 марта 2010

Не видя часть вашего кода, я не могу быть полностью уверен, в чем заключается эта проблема. Первое, что я бы попробовал, это что-то похожее на то, что Telerik имеет в своем API здесь . Вам нужно убедиться, что вы работаете с надлежащим OwnerTable, прежде чем делать что-либо с командным элементом. Используя что-то вроде этого, определите, что предмет предназначен для нужной таблицы, тогда у вас должен быть к нему доступ.

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

EDIT

Я вижу, что ты пытаешься сделать. Я думаю, что вы можете пойти по этому пути неправильно. Взгляните на раздел иерархии на демо-странице telerik здесь . Это очень информативно, и у меня была четырехуровневая иерархия, работающая с некоторым кодом всего за несколько часов, и все с одной радгридом

...