首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

问dataGrid删除一行的ID有关问题

2012-01-11 
问dataGrid删除一行的ID问题数据库字段:IDName1AA2BB3CC将数据库内容与DataGrid绑定.现在在页面上删除一行

问dataGrid删除一行的ID问题
数据库字段:   ID     Name
                        1       AA
                        2       BB
                        3       CC
将数据库内容与DataGrid绑定.现在在页面上删除一行,如何使datagrid中的ID自动减小.比如删除第二行后.如何变成   1   AA
                                                              2   BB,     而不使1   AA  
                                                                                        3   BB


[解决办法]
获取DataTable的时候 自己手动加一列 循环DataTable的数据行 将这一列的数据自动加1赋值 然后再绑定
[解决办法]
加一列模板列:
<asp:TemplateColumn>
<ItemTemplate>
<%#Container.ItemIndex+1%>
</ItemTemplate>
</asp:TemplateColumn>
不要那个ID列了
[解决办法]
ID那一列用模板列

<ASP:TEMPLATECOLUMN HeaderText= "ID ">
<ITEMTEMPLATE>
<%#((DataGridItem)Container).ItemIndex+1%>
</ITEMTEMPLATE>
</ASP:TEMPLATECOLUMN>
[解决办法]
那你就别用数据库里的ID显示

用DataGrid的自动排序吧
<ASP:TEMPLATECOLUMN HeaderText= "ID ">
<ITEMTEMPLATE>
<%#((DataGridItem)Container).ItemIndex+1%>
</ITEMTEMPLATE>
</ASP:TEMPLATECOLUMN
[解决办法]
这个分页也好用
================================
private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if (e.Item.ItemIndex > = 0)
{
e.Item.Cells[0].Text = Convert.ToString(e.Item.ItemIndex+1+DataGrid1.PageSize * DataGrid1.CurrentPageIndex);
}
}
// 在第一列显示序号
[解决办法]
你的ID是主键吗,如果是,用sql在数据库中取数据的时候,ID照取,但是不绑定,把DataGrid1的DataKeyField属性设为ID

然后在选择一行时
string id = DataGrid1.DataKeys[e.Item.ItemIndex].ToString();
得到选中行的ID,然后用你上面的方法删除即可

热点排行