Таблицы деталей в RadGrid не расширяются

У меня в основном есть RadGrid, а внутри RadGrid есть DetailTable. Теперь DetailTable не расширяется, но когда я отлаживаю событие DetailTableDataBind, я вижу, что для DataSource назначены данные. Если я закомментирую все в DetailTableDataBind, то DetailTable расширится, но, очевидно, не будет иметь никаких данных строки, так как я закомментировал событие. По сути, я хочу, чтобы в DetailTable отображался столбец, который использовался внутри RadGrid, в данном случае это столбец «Комментарий».

Почему, когда я пытаюсь назначить DataSource, DetailTable не расширяется?

Вот несколько фрагментов кода.

ASP-страница

<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 было таким же, как идентификатор 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