zoukankan      html  css  js  c++  java
  • 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   //其中ds为绑定到DataGrid中的数据源DataSet,GetSelectIndex()为取得index的方法,在页面中如下声明         三:单击改变当前行颜色

    <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>    
       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);
  • 相关阅读:
    Android Logcat使用技巧
    SqlClient使用存储过程并获取输出参数的指
    内存调试的东西D/dalvikvm( 809 ): GC_CONCURRENT freed
    android 读写sd卡的权限设置
    Android中EditText的使用方法持續更新
    RSL编译方式的FLEX站点出现#2046错误
    从网络读取数据并动态的显示在ListView中
    LEFT JOIN INNER JOIN 效率比较
    使用Installshield2009 在IIS6部署Asp.net mvc 应用程序
    Installshield2009中使用osql.exe执行数据库脚本
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/1801916.html
Copyright © 2011-2022 走看看