为什么我的gridview rowcommand在分页后会抛出错误?
即。我有一个pagesize为15的gridview。每行有一个按钮选择,直到分页,即在分页后,rowcommand中的代码开始抛出错误。为什么?
protected void grdViewCases_RowCommand(object sender, GridViewCommandEventArgs e)
{
try
{
//int index = MngOtherFunctions.CalculatedIndex(sender as GridView, Convert.ToInt32(e.CommandArgument));
int index = Convert.ToInt32(e.CommandArgument);
int CaseID = Convert.ToInt32(grdViewCases.DataKeys[index % grdViewCases.PageSize].Value);
short UserID = Convert.ToInt16(Session["UserID"]);
if (e.CommandName == "cmdSelect")
{
HdnFieldCaseID.Value = Convert.ToString(CaseID);
txtBoxCaseNo.Text = grdViewCases.Rows[index].Cells[1].Text;
ShowCasesByCaseID(CaseID);
grdViewCases.Visible = true;
}
此行引发错误:
指数超出范围。
txtBoxCaseNo.Text = grdViewCases.Rows[index].Cells[1].Text;
答案 0 :(得分:0)
这是因为indexnot
是指您选择的行,而不是页面索引。值为0
,这就是返回值超出范围的原因。
txtBoxCaseNo.Text = grdViewCases.Rows[index].Cells[1].Text;
对于我来说,我通过添加
检查发送给该方法的命令string _commandName = e.CommandName;
如果您选择页码,它将返回"Page"