无法将“ASP.home_aspx”类型的对象强制转换为“System.Web.UI.WebControls.LinkBut ton”类型

问题描述 投票:-1回答:3

在我的应用程序中,我有两个网格视图,在我的第一个gridview中,我将只有计数和用户名,并在第一个gridview中单击链接按钮,我将在第二个gridview中获得该特定用户的完整信息,这样做的问题是在我的第二个网格视图中,我在分页上进行分页,我将转到该链接按钮事件,并获得以下异常:

无法将“ASP.home_aspx”类型的对象强制转换为“System.Web.UI.WebControls.LinkBut​​ton”。

First Gridview

User                         Completed batches
nandini                            23

在第一个gridview中点击23我将获得第二个gridview中有23个记录的信息和分页,并且在第二个gridview中点击该分页我将首先使用此方法

protected void grd1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
string Eve1 = ViewState["SecondStatus"].ToString();
}

当我第一次点击gridview中的分页时,我将进入上面的代码,之后我会去lnkCompleted1点击事件

c# asp.net gridview
3个回答
0
投票

你在这里期待:

User1 = ((LinkButton)sender).CommandArgument;

senderLinkButton。但是你从另一个处理程序grd1_PageIndexChanging调用这个处理程序,那里sender只是你的页面。这就是异常发生的原因。

更好地理解User1在这种特殊情况下应该是什么,并将公共代码移动到单独的函数中。


0
投票

为什么不简单地尝试OnCommand而不是OnClick并执行:

User1 = e.CommandArgument;

代替

User1 = ((LinkButton)sender).CommandArgument;

你可以找到一个简单的例子here


0
投票

看起来你有一个问题:

User1 = ((LinkButton)sender).CommandArgument; 

你的sender是一个持有Linkbutton的对象。

现在我有一个问题How about your User1, is it a Linkbutton?

如果不是那么这是你的问题。

© www.soinside.com 2019 - 2024. All rights reserved.