DataGrid基础,添加DropDownList,改变单击行的颜色,隐藏显示列

一:基本
< asp:TemplateColumn HeaderText = " 标题 "  SortExpression = " 对应字段名 " >  
        
< ItemTemplate >  
                
// 平常状态时套用的的模板 
                 < asp:Label runat = " server "  Text = ' <%#  DataBinder.Eval(Container.DataItem,"对应字段名")%> ' />  
        
</ ItemTemplate >  

        
< EditItemTemplate >  
                
// 编辑模式下套用的模板 
                 < asp:TextBox runat = " server "  id = ""  Text = ' <%# DataBinder.Eval(Container.DataItem,"对应字段名")%> ' />  
                
< asp:RequiredFieldValidator id = ""  runat = " server " />  
                 
// 可添加大量你喜欢的控件 
         </ EditItemTemplate >  
</ asp:TemplateColumn >  

<%%> 服务器代码标识符  # 数据绑定的符号
DataGrid的中的一行称为一个DataGridItem,每个DataGridItem包含一个隐藏的GridItemIndex属性,记录DataGridItem的索引值,从0开始;另外每个DataGridItem还包含一个隐藏的DataItem属性,其中包含一个参考指向数据源中对应的一条数据  
在<asp:BoundColumn HeaderText="" DataField=""  ReadOnly=true></asp:BoundColumn>  设为ReadOnly在编加模式下可以只读显示
二:在DataGrid中添加DropDownList 

< asp:TemplateColumn >
            
< ItemTemplate >
                    
< asp:Label runat = " server "  Text = ' <%#  DataBinder.Eval(Container.DataItem,"对应字段名")%> ' />  
            
</ ItemTemplate >
            
< EditItemTemplate >
                    
< asp:DropDownList runat = " server "   DataSource = ' <%#  ds.Tables[""].DefaultView%> '   DataTextField = ""   DataValueField = ""   SelectIndex = ' <GetSelectIndex((string)DataBinder.Eval(Container.DataItem,"根据这个字段名获取DropDownList的index属性"))%> ' />
            
</ EditItemTemplate >     

  //其中ds为绑定到DataGrid中的数据源DataSet,GetSelectIndex()为取得index的方法,在页面中如下声明        

    public   int  GetSelectIndex( string  str)
            
{
                   
//这样的一个缺点是  DropDownList可能取重复的值,但有时是必要的,所以另一个静态声明方法
                  
//而且传入的参数那列必须是唯一值,如果有重复值的话,index就会只取前面的
                     int i = 0;
                   
if(str!=null)
                   
{
                            
foreach(DataRow classroom in ds.Tables["UserInfo"].Rows)
                            
{
                                     
if(str==classroom["UserName"].ToString())
                                      
{      
                                               
break;
                                      }

                                     i
=i+1;
                               }
    
                   }

                   
return i;
              }

这里是静态绑定DropDownList数据源,取索引略去。 

               
            
< asp:TemplateColumn >
                    
< ItemTemplate >
                            
< asp:Label runat = " server "  Text = ' <%#  DataBinder.Eval(Container.DataItem,"对应字段名")%> ' />  
                    
</ ItemTemplate >

                    
< EditItemTemplate >
                            
< asp:DropDownList runat = " server "   DataSource = ' <%#  ds.Tables[""].DefaultView%> '   SelectIndex = ' <GetSelectIndex2((string)DataBinder.Eval(Container.DataItem,"根据这个字段名获取DropDownList的index属性"))%> ' >
                                    
< asp:ListItem value = " aaaa " > aaaa </ asp:ListItem >                 
                                   
< asp:ListItem value = " bbbb " > bbbb </ asp:ListItem >      
                                   
< asp:ListItem value = " cccc " > cccc </ asp:ListItem >          
                         
</ asp:DropDownList >
                    
</ EditItemTemplate >
          
</ asp:TemplateColumn >

三:单击改变当前行颜色

在Item_Create中添加代码:

DataGrid Item Create  

客户端代码:(javascript):

< script language = javascript >  
function  CG(obj) 

var Curr_TR=document.all.tags("tr"); 
for(var i=1;i<Curr_TR.length;i++

Curr_TR[i].Style.backgroundColor
="white"
}
 
  
if(obj.style.backgroundColor="yellow")
 
{
        obj.style.backgroundColor
="white"
  }

  
else
  
{
        obj.style.backgroundColor
="yellow"
    }

}
 
</ script >  

四:隐藏显示列

  

隐藏和显示DataGrid列的操作

四:动态添加列,删除列

BoundColumn col  =   new  BoundColumn();
col.HeaderText
= " 标题 "
col.DataField
= " 绑定数据列 " ;
DataGrid1.Columns.Add(col); 

DataGrid1.Columns.Remove(col);

你可能感兴趣的:(datagrid)