Не може да се предаде обект от тип „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, така че го преместих вътре, но това просто изведе съобщението „Няма налични данни“, когато кликнах върху страниците.


person life    schedule 03.05.2015    source източник


Отговори (1)


Сега го реших, проблемът беше в PageIndexChanging. Тъй като имам публичен клас за Binding The Grid, го нарекох вместо gv.DataBind.

protected void gv_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            gv.PageIndex = e.NewPageIndex;
            BindData();
        }
person life    schedule 03.05.2015