e.rowindex有值,但为什么会提示索引越界,是啥原因
我想知道泛型数据集和DataList数据集在绑定到GridView时有啥区别,就是我要在GridView里面加了个模版列,然后添加一个ImageButton做删除,当我在获取GridView的行索引的时候出现了问题,提示超出行索引,是不是因为泛型类型的数据集不能这羊获取索引呀,请各位高手指点一下。
这个泛型数据集是我在用学习NHibernate时茶出来的
e.RowIndex是在什么事件中写的。我是这样写的:
//修改现有费用类别
protected void btnModify_Click(object sender, ImageClickEventArgs e)
{
GridViewRow row = (GridViewRow)((ImageButton)sender).NamingContainer;
DataKey key = this.gdvCostCategory.DataKeys[row.DataItemIndex];
this.hideGuid.Value = key["GUID"].ToString();
this.txtCategoryName.Text = key["类型名称"].ToString();
this.cmbCategoryType.SelectedValue = key["收支类型"].ToString();
this.cbtCategoryState.Checked = (key["使用状态"].ToString() == "启用");
ViewState["Operate"] = "Update";
this.txtDialogTitle.Text = "修改费用类型";
this.ModalPopupExtender1.Show();
}
是在rowdeleting中写的 我记得在这个事件中获取所选行的主键值就是这样获取的呀,为啥会说索引值越界,和绑定到GridView的数据集类型有关系吗
你的错误是数组下标越界
protected void Bind()
{
gv.DataSource = PersonHandle.Get(tb_name.Text);
gv.DataKeyNames = new string[] { "PersonId" };
gv.DataBind();
}
gv.DataKeyNames = new string[] { "PersonId" };要写在中间