#header #radgrid
#заголовок #radgrid
Вопрос:
Я использую Telerik RadGrid, и у меня есть требование, которое я смог выполнить, но, похоже, оно работает не так, как я ожидал.
Требование: добавьте родительскую строку заголовка одним нажатием кнопки (загрузите 5 записей) и удалите при другом нажатии кнопки (загрузите больше записей)
Объявление сетки выглядит следующим образом
<telerik:RadGrid ID="rgDetails1" runat="server" Width="99.9%" Skin="Office2010Blue"
EnableEmbeddedSkins="true" AutoGenerateColumns="true" OnColumnCreated="rgDetails1_ColumnCreated">
<MasterTableView DataKeyNames="RowID" TableLayout="Fixed" HeaderStyle-Height="28px">
<NoRecordsTemplate>
<asp:Label ID="lblError" runat="server" Text="No records to display."></asp:Label></NoRecordsTemplate>
</MasterTableView>
<ClientSettings>
<Resizing AllowColumnResize="True" />
<Scrolling AllowScroll="true" ScrollHeight="280px" UseStaticHeaders="true"></Scrolling>
<ClientEvents OnGridCreated="GridCreated" />
</ClientSettings>
</telerik:RadGrid>
и сетка привязана к приведенным ниже кодам
protected void btnLoad1_Click(object sender, EventArgs e)
{
DataTable fdtObjDetails = null;
try
{
fdtObjDetails = LoadData(5);
GridColumnGroup parentHeader = new GridColumnGroup();
parentHeader.HeaderText = "Essential";
parentHeader.Name = "Group1";
parentHeader.HeaderStyle.HorizontalAlign = HorizontalAlign.Center;
rgDetails1.MasterTableView.ColumnGroups.Add(parentHeader);
rgDetails1.DataSource = fdtObjDetails;
rgDetails1.DataBind();
}
catch (Exception objExcep)
{
string fstrError = objExcep.ToString();
}
}
и для столбца создано событие группировки RadGrid.
protected void rgDetails1_ColumnCreated(object sender, GridColumnCreatedEventArgs e)
{
try
{
if (e.Column.HeaderText != "" amp;amp; e.Column.HeaderText != string.Empty amp;amp; e.Column.HeaderText != null)
{
e.Column.ItemStyle.Height = System.Web.UI.WebControls.Unit.Pixel(20);
switch (e.Column.HeaderText.ToUpper())
{
case "ROWID":
case "ROW ID":
e.Column.Visible = false;
break;
case "TYPE":
e.Column.HeaderText = "Type";
e.Column.UniqueName = "Type";
e.Column.HeaderStyle.Width = System.Web.UI.WebControls.Unit.Pixel(100);
e.Column.HeaderStyle.HorizontalAlign = HorizontalAlign.Center;
e.Column.HeaderStyle.VerticalAlign = VerticalAlign.Middle;
e.Column.ColumnGroupName = "Group1";
break;
case "FLIGHT NAME":
case "FLIGHT_NAME":
{
e.Column.HeaderText = "Flight Name";
e.Column.UniqueName = "Flight_Name";
e.Column.HeaderStyle.HorizontalAlign = HorizontalAlign.Center;
e.Column.HeaderStyle.VerticalAlign = VerticalAlign.Middle;
e.Column.ColumnGroupName = "Group1";
break;
}
case "LIVES":
{
e.Column.HeaderText = "Lives";
e.Column.UniqueName = "Lives";
GridBoundColumn _GridColumn = (GridBoundColumn)e.Column;
e.Column.HeaderStyle.Width = System.Web.UI.WebControls.Unit.Pixel(60);
e.Column.HeaderStyle.HorizontalAlign = HorizontalAlign.Center;
e.Column.ItemStyle.HorizontalAlign = HorizontalAlign.Right;
e.Column.HeaderStyle.VerticalAlign = VerticalAlign.Middle;
_GridColumn.DataFormatString = "{0:#,###}";
e.Column.ColumnGroupName = "Group1";
break;
}
}
}
}
catch (Exception objExcep)
{
string fstrClsNm = "AL-CLS" this.GetType().BaseType.FullName "-rgDetails1_ColumnCreated()";
}
}
Теперь проблема в том, что как только я нажимаю любую из кнопок, я получаю сообщение об ошибке ниже.
Как мне решить эту проблему? или есть какой-либо другой способ добавить строки заголовка, похожие на изображение выше?
Комментарии:
1. у вас есть проблемы в коде ur? или вам нужен дизайн, отличный от рисунка, который вы опубликовали?
2. Спасибо Баладжи за ответ. Насколько я знаю, Telerik говорит, что мы не можем иметь сеточную структуру в ASPX и добавлять группировку динамически во время выполнения. Они предлагают либо иметь сетку и группировку в ASPX, либо создавать сетку динамически в коде во время выполнения. Я хотел знать, есть ли какой-либо другой доступный вариант. Мне нужен тот же дизайн, что и на картинке.