日期:2014-05-19  浏览次数:20447 次

获得gridview中的某一个单元的内容,在线等,想了好几天了!
在gridview中添加了一列(buttonfiled)列名为“修改”,不打算用gridview自身的更新功能(主要是不会)。gridview绑定数据库,现在想要实现的是单击每一行的 "修改 "我就要获的这一行数据的第一列的值也就是这一行的每一个单元格的值,以前在datagrid中是可以实现的,不知道怎么到了2005里改了以后不好用了,现给出原来2003中的代码:
private   void   DataGrid_ItemCommand(object   source,   System.Web.UI.WebControls.DataGridCommandEventArgs   e)
{
string   ID   =   e.Item.Cells[0].Text;
      Message.Text=   " ";
if(e.CommandName== "del ")
{
Label6.Visible=Label2.Visible=Label5.Visible=Label3.Visible=Label4.Visible=Label1.Visible=true;
Button2.Visible=Button1.Visible=true;
txtId.Visible=txtStuId.Visible=txtClass.Visible=txtStuName.Visible=txtBirthday.Visible=true;
                              txtId.Text=ID.ToString();
}
}


关键是:string   ID   =   e.Item.Cells[0].Text;

我这个语句在2005中就不好用了。2005源代码:
private   void   GridView_RowCommand(object   source,   System.Web.UI.WebControls.DataGridCommandEventArgs   e)
{
string   ID   =   e.Row.Cells[0].Text;
      Message.Text=   " ";
if(e.CommandName== "del ")
{
Label6.Visible=Label2.Visible=Label5.Visible=Label3.Visible=Label4.Visible=Label1.Visible=true;
Button2.Visible=Button1.Visible=true;
txtId.Visible=txtStuId.Visible=txtClass.Visible=txtStuName.Visible=txtBirthday.Visible=true;
                              txtId.Text=ID.ToString();
}
}
好心人帮帮忙啊,郁闷好几天了!


------解决方案--------------------
gridview中行不用item了

改用GridViewRow
eg.
string a;
foreach(System.Web.UI.Webcontrols.GridViewRow r in Gridview1.Rows)
{
a=r.cells[n].text;
}
------解决方案--------------------
2005里面获取某行某单元格的办法:
Gridview1.Rows[0].Cells[0].Text

可以按需要修改最后是.Text还是别的什么

上面是第1行1列,都是以0为开始递增的。
------解决方案--------------------
关键字:CommandName,CommandArgument,RowCommand,RowCreated
其实,你的问题可以简化为当点击按键的时候,如何得到那一行rowindex.因为只要得到了rowindex就可以利用楼上所说的Gridview1.Rows[rowindex].Cells[0].Text方法来的得到某一个表格里的内容了。
我做了个简单的例子你看一下
首先:你给自己的表格叫一个button列
<asp:TemplateField>
<ItemTemplate>
<asp:Button runat= "server " ID= "bt1 " Text= "点击 " OnClick= "bt1_Onlick " CommandName= "bt1 " />
</ItemTemplate>
</asp:TemplateField>
这段语句放在 <Columns> </Columns> 中间,注意里面的CommandName,他还附带一个参数的属性CommandArgument,我们就是利用这个参数来传递rowindex的

然后代码页里是:
Protected Sub GridView1_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles GridView1.RowCommand
If e.CommandName.CompareTo( "bt1 ") = 0 Then
Me.Label1.Text = e.CommandArgument
End If

End Sub

Protected Sub GridView1_RowCreated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowCreated
If e.Row.RowType = DataControlRowType.DataRow Then
Dim btt1 As Button = e.Row.Cells(5).FindControl( "bt1 ")
btt1.CommandArgument = e.Row.RowIndex
End If

E