初学ASP.net,使用DataGrid的两个问题
sql= "select name,sex... from table1 ";
由于table1里字段sex(性别)存储的是代码1和2(1代表男,2代表女)
希望显示在DBGrid里,sex列显示的是男和女,而不是1和2,
因此写代码如下;
private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if ((e.Item.ItemType == ListItemType.Item) || (e.Item.ItemType == ListItemType.AlternatingItem))
{
if (e.Item.Cells[0].Text == "1 ")
{
e.Item.Cells[0].Text = "男 ";
}
else
{
e.Item.Cells[0].Text = "女 ";
}
}
}
如果增加 "编辑、更新、取消 "列,发现有一个问题:
运行时,点击 "编辑 "按钮,进入编辑状态的那一行,“性别”列又显示为1/2,而非男/女。
另一个问题,如果点击“编辑”按钮之后,未点击“更新”或“取消”按钮,而是直接
点击“下一页”或“上一页”的话,新一页里的同一行同一列,将仍是处于编辑状态。
可不可以,在编辑状态下,未保存或取消时,进入新一页自动取消?可以的话,如何写?
------解决方案--------------------运行时,点击 "编辑 "按钮,进入编辑状态的那一行,“性别”列又显示为1/2,而非男/女。
----------------------------------------------------
在分页事件里 绑定数据
另一个问题,如果点击“编辑”按钮之后,未点击“更新”或“取消”按钮,而是直接
点击“下一页”或“上一页”的话,新一页里的同一行同一列,将仍是处于编辑状态。
可不可以,在编辑状态下,未保存或取消时,进入新一页自动取消?可以的话,如何写?
=====================
还是分页里写 this.datagrid1.EditIndex = -1;
------解决方案--------------------if ((e.Item.ItemType == ListItemType.Item) || (e.Item.ItemType == ListItemType.AlternatingItem)|| (e.Item.ItemType == ListItemType.EditItem))
{
if (e.Item.Cells[0].Text == "1 ")
{
e.Item.Cells[0].Text = "男 ";
}
else
{
e.Item.Cells[0].Text = "女 ";
}
}
///多加一个EditItem时的变化