DataGrid 中的特殊应用

1.//生成鼠标前后着色的变化
只用增加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'");
            }

        }


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");
                      }

                    }

                        
        }

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;
            }
            
        }

posted @ 2006-08-26 01:55  wenanry  阅读(276)  评论(1编辑  收藏  举报