这是在网上找的解决方案用gridview的showingeditor事件,但我用的时候gridview1.getdatarow和focusedrowhandle处都报错,想知道这个的using是什么?亦或是其他具体解决方案
private void gridView1_ShowingEditor(object sender, CancelEventArgs e)
{
DataRow row = this.gridView1.GetDataRow(this.gridView1.FocusedRowHandle);
if (row != null)
{
string ss = row["status"].ToString();
if (row["status"].ToString() == "已入库")//当status字段为已入库的时候
{
e.Cancel = true;//该行不可编辑
}
}
}
你找代码的时候找到的肯定不是aspnet的代码,弄不好是wpf的
aspnet的gridview没有这个方法
直接gridview.Rows[0]就是它的第0行了
gridview.SelectedRow是它的选中行
但是数据类型都不是DataRow,而是GridViewRow
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
////用NewEidIndex取得当前编辑的行号,然后获取gridviewrow对象
//GridViewRow gvr = GridView1.Rows[e.NewEditIndex];
////判断,如果当前编辑行姓名栏为12321用户,则取消对当前行的编辑
//if (gvr.Cells[0].Text == "12321")
//{
// e.Cancel = true;
//}
GridView1.EditIndex = e.NewEditIndex;
Bind();
}
注的是我原有代码,前面是找的方法,报错未能加载视图状态。正在向其中加载视图状态的控件树必须与前一请求期间用于保存视图状态的控件树相匹配。例如,当以动态方式添加控件时,在回发期间添加的控件必须与在初始请求期间添加的控件的类型和位置相匹配。
你好,
你的目的应该是gridview 的增删改查功能?如果确实是asp.net webform 的代码,那么这个ShowingEditor 方法可能是别人自己写的这个方法。我建议你可以使用OnRowEditing 事件。
你可以查看以下例子。