我的DataGrid右边有一个"查看"按钮,当点就后就弹出一个新页面,显示此条记录的详细信息,
现在的问题是,我怎么取得当前"查看"按钮按下时那一行的数据
并且,"查看"按钮事件处理程序为
private void DataGrid1_EditCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
}
现在的问题是,我怎么取得当前"查看"按钮按下时那一行的数据
并且,"查看"按钮事件处理程序为
private void DataGrid1_EditCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
}
加一个属性 DataKeyField="id" 其中id是你数据库中的表的主键字段名private void DataGrid1_EditCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
string id = DataGrid1.DataKeys[e.Item.ItemIndex].ToString();
Response.Redirect("edit.aspx?id="+id);
}再在另一页面取id值,从数据库里读就是了
索引超出范围。必须为非负值并小于集合大小。参数名: index
private void DataGrid1_EditCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
TableRow tr = (TableRow)e.Item;
//上面的tr就是你的当前行,至于怎么传至另一个页面,好方法不知道,可以用session
Session.Add("selectrow",tr);
}另一页页面取的话如下:。。
TableRow tr = (TableRow)Session["selectrow"];
for(int i=0;i<tr.Cells.Count;i++)
{
Response.Write(tr.Cells[i].Text);
}
DataGrid[1][2]出错,不能用,
{
//打印出整行的值
for(int i=0;i<e.Item.Cells.Count;i++)
{
Response.Write(e.Item.Cells[i].Text);
}
//取此行第一列的值:
string str1 = e.Item.Cells[0].Text;
//取此行第二列的值:
string str2 = e.Item.Cells[1].Text;
//取此行第三列的值:
string str3 = e.Item.Cells[3].Text;
..................
}
string str3 = e.Item.Cells[3].Text;
写错了,应该是
string str3 = e.Item.Cells[2].Text;
private viod table_del()
{
int x;
object z;
x = dataGrid1.CurrentRowIndex;
z = dataGrid1[x,0];//dataGrid选中当前行的第0列数据
DataRow foundRow;//定义记录类变量
object[] findTheseVals = new object[1];
findTheseVals[0] = z;
foundRow = dataSet11.Tables["Student"].Rows.Find(findTheseVals);
if(foundRow != null)
foundRow.Delete();
}
Session["AcTag"]=e.Item.Cells[0].Text;