DetailTables в RadGrid не се разширяват

По принцип имам RadGrid и вътре в RadGrid има DetailTable. Сега DetailTable не се разширява, но когато отстранявам грешки в събитието DetailTableDataBind, виждам, че има данни, присвоени на DataSource. Ако коментирам всичко в DetailTableDataBind, тогава DetailTable се разширява, но очевидно няма да има данни за ред, тъй като бях коментирал събитието. По принцип искам DetailTable да показва колона, която е била използвана в RadGrid, която в този случай е колоната "Коментар".

Защо, когато се опитам да присвоя DataSource, таблицата с подробности няма да се разшири?

Ето някои фрагменти от код.

Страницата aspx

<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server">
        <AjaxSettings>
            <telerik:AjaxSetting AjaxControlID="MemberCommentsGrid">
                <UpdatedControls>
                    <telerik:AjaxUpdatedControl ControlID="MemberCommentsGrid" />
                </UpdatedControls>
            </telerik:AjaxSetting>
        </AjaxSettings>
    </telerik:RadAjaxManager>


<telerik:RadGrid ID="MemberCommentsGrid" runat="server" AutoGenerateColumns="false"
     AllowPaging="true" PageSize="20" ShowStatusBar="true" OnDetailTableDataBind="MemberCommentsGrid_DetailTableDataBind" Skin="WebBlue">
    <ClientSettings AllowExpandCollapse="true">    
    </ClientSettings>
    <MasterTableView AllowMultiColumnSorting="true" DataKeyNames="MemberCommentID">
        <Columns>            
            <telerik:GridBoundColumn DataField="MemberCommentID" HeaderText="Comment ID">
            </telerik:GridBoundColumn>
            <telerik:GridBoundColumn DataField="Comment" HeaderText="Comment Text">
            </telerik:GridBoundColumn>
            <telerik:GridBoundColumn DataField="DateAdded" HeaderText="Date Added">
            </telerik:GridBoundColumn>                
            <telerik:GridBoundColumn DataField="UserID" HeaderText="Comment Created By">
            </telerik:GridBoundColumn>       
        </Columns>
        <DetailTables>
            <telerik:GridTableView Name="MemberCommentsGrid" DataKeyNames="MemberCommentID" runat="server" AutoGenerateColumns="false">
                <Columns>
                <telerik:GridBoundColumn DataField="Comment" HeaderText="Full ID">
                    </telerik:GridBoundColumn>
                    <telerik:GridBoundColumn DataField="Comment" HeaderText="Full Comment">
                    </telerik:GridBoundColumn>
                </Columns>
            </telerik:GridTableView>
        </DetailTables>
    </MasterTableView>
    </telerik:RadGrid>

Страницата cs

protected void Page_Load(object sender, EventArgs e)
    {
        #region Getting DataTable data
        string memberName = string.Empty;                       

        if (!IsPostBack)
        {
            if (Request.QueryString["MemName"] != null)
                memberName = Request.QueryString["MemName"].ToString();
            else
                Response.Redirect("../Account/Login.aspx");



            using (AcquirerPortal.Data.MemberComments mc = new AcquirerPortal.Data.MemberComments())
            {
                dtMemberComments = mc.GetMemberComments(Members.GetMemberIDByMemberName(memberName));
            }


        }
        #endregion

        MemberCommentsGrid.DataSource = dtMemberComments;
        MemberCommentsGrid.DataBind();
    }

    protected void MemberCommentsGrid_DetailTableDataBind(object source, Telerik.Web.UI.GridDetailTableDataBindEventArgs e)
    {
        e.DetailTableView.DataSource = e.DetailTableView.ParentItem["Comment"].Text;
    }

Ако има по-добър начин да направите това, моля, уведомете ме.


person SpaceApple    schedule 11.01.2013    source източник
comment
Разгледахте ли сайта на Telerik, за да видите някой от примерите, които имат на уебсайта си..?   -  person MethodMan    schedule 11.01.2013
comment
Разгледах, но изглежда, че следвам правилния път, освен ако не правя нещо глупаво   -  person SpaceApple    schedule 11.01.2013


Отговори (3)


Може би полето за коментари трябва първо да бъде прехвърлено към списък?

person Dperish    schedule 11.01.2013
comment
Защо това поле трябва да се прехвърля към списък? Какво е полето за коментар в RadGrid, което искам да покажа в DetailTable, по същество използвам изгледа на коментар в DetailTable. - person SpaceApple; 11.01.2013

Добре, причината за това беше, че името на DetailTable беше същото като ID на RadGrid. Току-що промених името на DetailTable и сега работи.

person SpaceApple    schedule 11.01.2013
comment
Ако сте намерили своя отговор, тогава трябва да го маркирате като приет отговор (зелената отметка). - person DanM7; 22.05.2014

Ето друг начин за разширяване на таблицата с подробности в RadGrid.

// expand all of the rows on the page

int counter = 0;

int NoOfRows = Pages.PAPage.ApptsTableGrid.Rows.Count;

for (i=0;i<NoOfRows;i++)

{ 

    HtmlTableRow gRow = Pages.PAPage.ApptsTableGrid.Rows[counter + i];

    foreach(HtmlTableCell gCell in gRow.Cells) 

    {    

        if(gCell.CssClass=="rgExpandCol")

        { 

            gCell.MouseClick();  

            ActiveBrowser.RefreshDomTree();

            System.Threading.Thread.Sleep(1000); 

        }  

    }

    counter++; 

} 
person Mya    schedule 16.05.2014