dreammaster

天行健,君子以自强不息;地势坤,君子以厚德载物

博客园 首页 新随笔 联系 订阅 管理
        最近在使用asp.net2.0中发现GridView与DataGrid在数据访问上的区别相当大,对于DataGrid访问每一行中的数据项通常有两种方法:
<asp:BoundColumn DataField="ID" Visible="False"/>


//后台处理

int id = int.Parse(Grid1.Items[index].Cells[0].Text);

//或采用

int id = (int)((DataRowView)Grid1.Items[index].DataItem).Row["ID"]);

      对于GridView两种方法均不见效, Visible=Flase的列不再Render,所以客户端不可能访问,对于DataItem,除了RowDataBound几个事件中可以使用, ViewState中不在保存DataItem,因此,对于GridView如果想知道某一行的值,不可以将其设为Visile=false,如果确实不 想在界面中显示这一列的值,可以用DataKeyNames和DataKeys结合完成一些特别的数据访问.
<asp:GridView id="GridView1" Runat="Server" DataKeyNames="ObjectID">



</asp:GridView>

//代码中处理选中行的id

int id = int.Parse(GridView1.DataKeys[GridView1.SelectedIndex].Value.ToString());

posted on 2006-05-09 00:39  梦幻天涯  阅读(3352)  评论(4编辑  收藏  举报