在我的应用程序中,我有两个网格视图,在我的第一个gridview中,我将只有计数和用户名,并在第一个gridview中单击链接按钮,我将在第二个gridview中获得该特定用户的完整信息,这样做的问题是在我的第二个网格视图中,我在分页上进行分页,我将转到该链接按钮事件,并获得以下异常:
无法将“ASP.home_aspx”类型的对象强制转换为“System.Web.UI.WebControls.LinkButton”。
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点击事件
你在这里期待:
User1 = ((LinkButton)sender).CommandArgument;
sender
是LinkButton
。但是你从另一个处理程序grd1_PageIndexChanging
调用这个处理程序,那里sender
只是你的页面。这就是异常发生的原因。
更好地理解User1
在这种特殊情况下应该是什么,并将公共代码移动到单独的函数中。
为什么不简单地尝试OnCommand而不是OnClick并执行:
User1 = e.CommandArgument;
代替
User1 = ((LinkButton)sender).CommandArgument;
你可以找到一个简单的例子here
看起来你有一个问题:
User1 = ((LinkButton)sender).CommandArgument;
你的sender
是一个持有Linkbutton
的对象。
现在我有一个问题How about your User1, is it a Linkbutton?
如果不是那么这是你的问题。