2015-05-03 3 views
2

Странная ошибка. У меня есть gridview, к которому я добавил разбивку на страницы.Невозможно наложить объект типа «System.Web.UI.WebControls.GridView» на тип «System.Web.UI.WebControls.LinkButton»

<asp:GridView ID="gv" runat="server" AutoGenerateColumns="False" AllowPaging="True" OnPageIndexChanging="gv_PageIndexChanging" OnRowCommand="gv_RowCommand" OnRowDataBound="gv_RowDataBound" PageSize="3" GridLines="None" EmptyDataText="No data available." ShowHeader="false"> 
      <Columns> 
       <asp:TemplateField> 
        <ItemTemplate> 
<asp:LinkButton ID="linkButton" runat="server" Text="Add"></asp:LinkButton><br /> 

Он загружает первую страницу штраф, однако, если я пытаюсь перейти на страницу 2, 3 дает мне ошибку

Невозможно привести объект типа «System.Web.UI. WebControls.GridView 'до типа' System.Web.UI.WebControls.LinkButton '.

protected void gv_RowCommand(object sender, GridViewCommandEventArgs e) 
      { 

    GridViewRow Row = (GridViewRow)(((LinkButton)e.CommandSource).NamingContainer); //error 

     if (e.CommandName == "Add") 
        {  
         .... 
     } 
} 

protected void gv_PageIndexChanging(object sender, GridViewPageEventArgs e) 
     { 
      gv.PageIndex = e.NewPageIndex; 
      gv.DataBind(); 
     } 

Я думал, что это произошло потому, что GridViewRow был вне e.CommandName, так что я переехал его внутри, однако, это только отображается «Нет доступных данных» сообщение, когда я clciked на вёрстка.

ответ

1

Я решил это сейчас, проблема была в PageIndexChanging. Поскольку у меня есть открытый класс для Binding The Grid, я назвал это вместо gv.DataBind.

protected void gv_PageIndexChanging(object sender, GridViewPageEventArgs e) 
     { 
      gv.PageIndex = e.NewPageIndex; 
      BindData(); 
     } 
Смежные вопросы