2013-10-01 4 views
0

Я просмотрел веб-страницы, изучая различные примеры и пробовал каждый из них. Я получаю ту же ошибку, несмотря ни на что. Я пытаюсь добавить заголовок в элемент управления GridView в коде. Я попытался добавить код ниже в каждом возможном событии из gridview prerender ко всем событиям страницы. Такая же сделка. Всегда получайте ошибку: Таблица должна содержать разделы строки в порядке заголовка, тела, а затем нижнего колонтитула.ASP.NET - GridView, добавляя строку заголовка в код

Я разделил страницу на голые предметы первой необходимости - удалив главную страницу и все CSS.

Вот код ASPX и решетчатый вид:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="Shipping.Admin.Default" Title="Apps - Shipping" %> 
<html> 
<head><title></title></head> 
<body> 
<form runat="server" id="form1"> 
<br /> 
<h1>Admin Page</h1> 
<br /> 

      <asp:GridView ID="gvShipments" runat="server" AllowSorting="True" 
       AutoGenerateColumns="False" onsorting="gvShipments_Sorting" Width="100%" 
       AllowPaging="True" onpageindexchanging="gvShipments_PageIndexChanging" 
       PageSize="50">     
       <PagerSettings Position="TopAndBottom" /> 
       <Columns> 
        <asp:BoundField DataField="RequestDate" HeaderText="Request Date" SortExpression="dtRequestDate" /> 
        <asp:BoundField DataField="Requestor" HeaderText="Requestor" SortExpression="Requestor" /> 
        <asp:BoundField DataField="CompanyName" HeaderText="Company" SortExpression="CompanyName" /> 
        <asp:BoundField DataField="ShipmentDescription" HeaderText="Description" SortExpression="ShipmentDescription" /> 
        <asp:BoundField DataField="City" HeaderText="City" SortExpression="City" /> 
        <asp:BoundField DataField="State" HeaderText="State" SortExpression="State" /> 
        <asp:BoundField DataField="ShipmentType" HeaderText="Shipment Type" SortExpression="ShipmentType" /> 
        <asp:BoundField DataField="ServiceLevel" HeaderText="Service Level" SortExpression="ServiceLevel" /> 
        <asp:BoundField DataField="Status" HeaderText="Status" SortExpression="Status" /> 
        <asp:HyperLinkField DataNavigateUrlFields="ShipmentId" DataNavigateUrlFormatString="Shipment.aspx?CatId=Admin&amp;sID={0}" Text="&nbsp;&nbsp;&nbsp;edit" /> 
       </Columns> 
      </asp:GridView>  
<br /> 
</form> 
</body> 
</html> 

Вот пропущено из отделенного кода. Этот метод вызывается в методе Page_Load:

private void LoadGridView() 
     { 
      DataSet ds = new DataSet(); 
      ds = GetDataset(); 

      DataTable dtRequests = ds.Tables["Admin"]; 
      DataView dv = new DataView(dtRequests); 

      if (ViewState["sortexpression"] != null) 
      { 
       dv.Sort = ViewState["sortexpression"].ToString() + " " + ViewState["sortdirection"].ToString(); 
      } 
      else 
      { 
       dv.Sort = "dtRequestDate DESC"; 
      } 

      gvShipments.DataSource = dv; 
      gvShipments.DataBind(); 

      **if (gvShipments.Rows.Count > 0) 
      { 
       this.gvShipments.UseAccessibleHeader = true; 
       this.gvShipments.HeaderRow.TableSection = TableRowSection.TableHeader; 
      }**  

      ds.Dispose(); 
     } 

Я попытался добавить код внутри жирным шрифтом заявление IF везде. Я в тупике. Пожалуйста помоги!

Благодаря

+0

вы хотите установить текст заголовка? ? –

+0

Я хочу заставить и визуализировать изображение в сетке. –

+0

Зачем они нужны? И если вы это сделаете - не можете ли вы добавить их в код на стороне клиента? –

ответ

2

Попробуйте добавить Page_PreRender событие и разместить код внутри него, то ваш код выглядеть, как показано ниже

protected void Page_PreRender(object sender, EventArgs e) 
{ 
    if (gvShipments.Rows.Count > 0) 
    { 
     gvShipments.UseAccessibleHeader = true; 
     gvShipments.HeaderRow.TableSection = TableRowSection.TableHeader; 
    } 
} 

PageLifeCycle enter image description here

+0

Описание: Необработанное исключение произошло во время выполнения текущего веб-запроса. Просмотрите трассировку стека для получения дополнительной информации об ошибке и ее возникновении в коде. Сведения об исключении: System.Web.HttpException: таблица должна содержать разделы строк в порядке заголовка, тела, а затем нижнего колонтитула. [трассировка стека пропущена] Информация о версии: Microsoft .NET Framework Версия: 2.0.50727.5472; ASP.NET Версия: 2.0.50727.5471 –

+0

Такая же ошибка Satinder –

+0

Посмотрите, сколько записей записано в вашем 'dataview', и вы использовали событие' Page_PreRender' –

Смежные вопросы