DataGrid 中的特殊应用
1.//生成鼠标前后着色的变化
只用增加ItemDataBound事件就可以.
2.//调整列宽
只用增加ItemDataBound事件就可以
3.如果编辑中省,市,区这样的DropDownList,最好的方法就是做在三连动文件
只用增加ItemDataBound事件就可以
只用增加ItemDataBound事件就可以.
private void DataGrid1_ItemDataBound(object sender, DataGridItemEventArgs e)
{
e.Item.Cells[1].Text=Convert.ToString(e.Item.ItemIndex+1);//产生序号
//生成鼠标前后着色的变化
if(e.Item.ItemType!=ListItemType.Header)
{
if(e.Item.ItemIndex%2==0)
{
e.Item.Attributes.Add( "onmouseout","this.style.backgroundColor='PaleGoldenrod'");
}
else
{
e.Item.Attributes.Add( "onmouseout","this.style.backgroundColor='LightGoldenrodYellow'");
}
e.Item.Attributes.Add( "onmouseover","this.style.backgroundColor='#C1D2EE'");
}
}
{
e.Item.Cells[1].Text=Convert.ToString(e.Item.ItemIndex+1);//产生序号
//生成鼠标前后着色的变化
if(e.Item.ItemType!=ListItemType.Header)
{
if(e.Item.ItemIndex%2==0)
{
e.Item.Attributes.Add( "onmouseout","this.style.backgroundColor='PaleGoldenrod'");
}
else
{
e.Item.Attributes.Add( "onmouseout","this.style.backgroundColor='LightGoldenrodYellow'");
}
e.Item.Attributes.Add( "onmouseover","this.style.backgroundColor='#C1D2EE'");
}
}
2.//调整列宽
只用增加ItemDataBound事件就可以
private void DataGrid1_ItemDataBound(object sender, DataGridItemEventArgs e)
{
e.Item.Cells[1].Text=Convert.ToString(e.Item.ItemIndex+1);//产生序号
//调整列宽
switch (e.Item.ItemType)
{
case ListItemType.Item:
case ListItemType.AlternatingItem:
e.Item.Attributes.Add("ondblclick","alert('"+e.Item.ItemIndex+"');");
break;
case ListItemType.Header:
e.Item.Cells[0].ColumnSpan=2;//合并单元格
e.Item.Cells[1].Visible=false;
break;
case ListItemType.EditItem:
for (int i=4; i < DataGrid1.Columns.Count-2; i++)//只调整被编辑的列
{
if(e.Item.ItemType==ListItemType.EditItem)
{
e.Item.Cells[i].Attributes.Add("Width", "70px");
}
}
}
{
e.Item.Cells[1].Text=Convert.ToString(e.Item.ItemIndex+1);//产生序号
//调整列宽
switch (e.Item.ItemType)
{
case ListItemType.Item:
case ListItemType.AlternatingItem:
e.Item.Attributes.Add("ondblclick","alert('"+e.Item.ItemIndex+"');");
break;
case ListItemType.Header:
e.Item.Cells[0].ColumnSpan=2;//合并单元格
e.Item.Cells[1].Visible=false;
break;
case ListItemType.EditItem:
for (int i=4; i < DataGrid1.Columns.Count-2; i++)//只调整被编辑的列
{
if(e.Item.ItemType==ListItemType.EditItem)
{
e.Item.Cells[i].Attributes.Add("Width", "70px");
}
}
}
3.如果编辑中省,市,区这样的DropDownList,最好的方法就是做在三连动文件
只用增加ItemDataBound事件就可以
private void DataGrid1_ItemDataBound(object sender, DataGridItemEventArgs e)
{
e.Item.Cells[1].Text=Convert.ToString(e.Item.ItemIndex+1);//产生序号
// 在此生成三级连动
string sqlprovince="select * from province";
DataSet dsprovince=GetDataSet(sqlprovince);
//一级
if(e.Item.ItemType==ListItemType.EditItem)
{
DropDownList ddlprovince=(DropDownList)e.Item.FindControl("province");
ddlprovince.DataSource=dsprovince;
ddlprovince.DataTextField="province";
ddlprovince.DataValueField="provinceID";
ddlprovince.DataBind();
ddlprovince.Items.FindByValue(Convert.ToString(DataBinder.Eval(e.Item.DataItem,"provinceID"))).Selected=true;
//二级
if(e.Item.ItemType==ListItemType.EditItem)
{
if(ddlprovince.SelectedIndex!=-1)
{
string sqlcity="select * from city where father='"+ddlprovince.SelectedValue+"'";
DropDownList ddlcity=(DropDownList)e.Item.FindControl("city");
DataSet dscity=GetDataSet(sqlcity);
ddlcity.DataSource=dscity;
ddlcity.DataTextField="city";
ddlcity.DataValueField="cityID";
ddlcity.DataBind();
ddlcity.Items.FindByValue(Convert.ToString(DataBinder.Eval(e.Item.DataItem,"cityID"))).Selected=true;
//三级
if(e.Item.ItemType==ListItemType.EditItem)
{
if(ddlcity.SelectedIndex!=-1)
{
string sqlarea="select * from area where father='"+ddlcity.SelectedValue+"'";
DropDownList ddlarea=(DropDownList)e.Item.FindControl("area");
DataSet dsarea=GetDataSet(sqlarea);
ddlarea.DataSource=dsarea;
ddlarea.DataTextField="area";
ddlarea.DataValueField="areaID";
ddlarea.DataBind();
ddlarea.Items.FindByValue(Convert.ToString(DataBinder.Eval(e.Item.DataItem,"areaID"))).Selected=true;
}
}
}
}
}
break;
default:
break;
}
}
{
e.Item.Cells[1].Text=Convert.ToString(e.Item.ItemIndex+1);//产生序号
// 在此生成三级连动
string sqlprovince="select * from province";
DataSet dsprovince=GetDataSet(sqlprovince);
//一级
if(e.Item.ItemType==ListItemType.EditItem)
{
DropDownList ddlprovince=(DropDownList)e.Item.FindControl("province");
ddlprovince.DataSource=dsprovince;
ddlprovince.DataTextField="province";
ddlprovince.DataValueField="provinceID";
ddlprovince.DataBind();
ddlprovince.Items.FindByValue(Convert.ToString(DataBinder.Eval(e.Item.DataItem,"provinceID"))).Selected=true;
//二级
if(e.Item.ItemType==ListItemType.EditItem)
{
if(ddlprovince.SelectedIndex!=-1)
{
string sqlcity="select * from city where father='"+ddlprovince.SelectedValue+"'";
DropDownList ddlcity=(DropDownList)e.Item.FindControl("city");
DataSet dscity=GetDataSet(sqlcity);
ddlcity.DataSource=dscity;
ddlcity.DataTextField="city";
ddlcity.DataValueField="cityID";
ddlcity.DataBind();
ddlcity.Items.FindByValue(Convert.ToString(DataBinder.Eval(e.Item.DataItem,"cityID"))).Selected=true;
//三级
if(e.Item.ItemType==ListItemType.EditItem)
{
if(ddlcity.SelectedIndex!=-1)
{
string sqlarea="select * from area where father='"+ddlcity.SelectedValue+"'";
DropDownList ddlarea=(DropDownList)e.Item.FindControl("area");
DataSet dsarea=GetDataSet(sqlarea);
ddlarea.DataSource=dsarea;
ddlarea.DataTextField="area";
ddlarea.DataValueField="areaID";
ddlarea.DataBind();
ddlarea.Items.FindByValue(Convert.ToString(DataBinder.Eval(e.Item.DataItem,"areaID"))).Selected=true;
}
}
}
}
}
break;
default:
break;
}
}