【问题标题】:Unable to cast object of type 'System.Web.UI.WebControls.GridView' to type 'System.Web.UI.WebControls.LinkButton'无法将“System.Web.UI.WebControls.GridView”类型的对象转换为“System.Web.UI.WebControls.LinkBut​​ton”
【发布时间】:2015-07-12 19:56:39
【问题描述】:

奇怪的错误。我有一个添加了分页的gridview。

<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.LinkBut​​ton”。

    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();
        }

我认为这是因为GridViewRowe.CommandName 之外,所以我将它移到了里面,但是,当我单击分页时,这只是显示“无可用数据”消息。

【问题讨论】:

    标签: c# asp.net gridview paging


    【解决方案1】:

    我现在已经解决了,问题出在PageIndexChanging。因为我有一个用于绑定网格的公共类,所以我调用它而不是 gv.DataBind。

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

    【讨论】:

      猜你喜欢
      • 2016-01-17
      • 1970-01-01
      • 2012-02-13
      • 1970-01-01
      • 1970-01-01
      • 2021-12-06
      • 2022-01-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多