`
风火山林
  • 浏览: 147240 次
  • 性别: Icon_minigender_1
  • 来自: 汕尾
最近访客 更多访客>>
社区版块
存档分类
最新评论

datagrid 操作技巧

阅读更多

一.列的添加和隐藏

1.动态添加列:其实原理很简单,只要知道datagrid中每个元素就是一个类,我们可以把它实例化,然后添加到datagrid中就行了。

string []compre={"A","B","C","D","E"};
    string []comprefiled={"criterion1","criterion2","criterion3", "criterion4","criterion5"};
    for(int i=0;i<evalchoice;i++)
    {
     BoundColumn col = new BoundColumn(); //列
     col.HeaderText= compre[i];  //属性设置      
     col.DataField=comprefiled[i];
     DGridEval.Columns.Add(col); 
}
2.设置属性:找到该行直接设置就行了
dgrd1.Columns[2].Visible=true;  

 

二.datagrid 跳转列绑定多个参数的方法

1.使用模版列+<a href>

<asp:TemplateColumn SortExpression ="_i_resume_id" HeaderText =详情 HeaderStyle-HorizontalAlign="Center"  ItemStyle-HorizontalAlign="Center"  >
<ItemTemplate>
<a   href='resumechoose1.aspx?id=<%#   DataBinder.Eval(Container.DataItem,"id")   %>&_i_position_id=<%#   DataBinder.Eval(Container.DataItem,"_i_position_id")  %>'   target="_blank"> 查看 </a>
</ItemTemplate>
</asp:TemplateColumn>

 

 

<asp:HyperLinkColumn   HeaderText ="" Text="申请调出"    DataNavigateUrlField ="cid"  DataNavigateUrlFormatString="javascript:NavSettingsPage('{0}',form.x_sqpc.value)" HeaderStyle-HorizontalAlign="Center" Target=mainFrame  ItemStyle-HorizontalAlign="Center"/>

 

2.使用模版列+linkbutton

<asp:TemplateColumn HeaderText ="删除"  HeaderStyle-HorizontalAlign="Center"  ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
 <asp:LinkButton ID="x_del" OnClientClick="return confirm('确定要删除吗?');"  OnCommand="DeleteInfo" runat="server" PostBackUrl='<%# "tbmaintain.aspx?type=del&id="+ Eval("id").ToString() %>'>删除</asp:LinkButton>                                                    
</ItemTemplate>
</asp:TemplateColumn>

 

3.没有绑定的情况下,使用Session+<%=%>

<a href="../homepage.aspx?prono=<%=Session["ProNo"]%>">

 

三.GridView 中的各种查找

在RowDataBound 和RowCreated 事件里面 查找

1、当前行中的控件 e.Row.FindControl("TextBox1");

2、当前行              e.Row.RowIndex;

3、当前行的主键值  GridView1.DataKeys[e.Row.RowIndex].Value.ToString();

在RowCommand事件里面 查找

  RowCommand事件是GridView中的按钮触发的事件。只有这三个属性。

   

  e.CommandName;       //判断是哪个按钮。

  e.CommandArgument; //你可以绑定任何你认为有用的值,默认是当前按钮所在的行号
  e.CommandSource;    //数据源

在GridView中的按钮Click事件里面


 ImageButton button = (ImageButton)sender;
 ((GridViewRow)((DataControlFieldCell)button.Parent).Parent).RowIndex;//当前的行数
  GridView1.DataKeys[Row_num].Value.ToString(); //当前行的主键值

  (button.Parent.Parent as GridViewRow).FindControl("TextBox1");或

  gvcgGrid.Rows[Row_num].FindControl("TextBox1");//查找当前行中的其他控件

查找 <FooterTemplate>模板中的控件

GridView1.FooterRow.FindControl("TextBox1") as TextBox

查找 <EmptyDataTemplate>模板中的控件

GridView1.Controls[0].Controls[0].Controls[0].FindControl("TextBox1") as TextBox;

在这里我之列了一些基本的查找,一个非常有意思的属性是Parent你可以根据他查找到你任何想要的东西。

 

四.链接添加提示

1.文本中添加:Text="<div  onclick=&quot;return confirm('确定删除吗?')&quot;>删除</div>"

 

五.gridview模板列和删除标记

1.gridview显示为空,则提示“空!”: 用GridView自身就提供当内容为空时候的模板

<EmptyDataTemplate>

 

2.把标记删除传入id参数 : 先用模板列,在其中的item模板中加入linkbutton,然后在commandname="update",再编辑gridview中的update属性                                               

<asp:LinkButton ID="LinkButton1"  runat="server" PostBackUrl=' <%# "editpu.aspx?puid="+ Eval("articleid").ToString() %>'

gridview+linkbutton做标记删除      

 

六.js实现纵横全选

1.纵向全选
form=document.forms [0];
function vertical_s(o)//纵向全选
{
 
 
 for(var i=1;i<q_grid.rows.length;i++)
 {
  var j=4;
  switch(o)
  {
   case form.x_alla:
   j=4;
   break;
   case form.x_alli:
   j=5;
   break;
   case form.x_allu:
   j=6;
   break;
   case form.x_alld:
   j=7;
   break;
   case form.x_allq:
   j=8;
   break;
   case form.x_allp:
   j=9;
   break;
   default:
   break;
  }
   
   culcell=q_grid.rows[i].cells[j].childNodes[0];
   culcell.checked=o.checked;
   //alert(culcell) 
      
 }
}
2.横向全选:比纵向复杂,必须在datagrid把它的value绑定为点击的标志。
绑定:
<input type =checkbox name="x_horizon"  onclick ="horizontal_s()"  id="x_horizon" value ='<%#   DataBinder.Eval(Container.DataItem,"sn")%>'  >
function horizontal_s()//横向全选
var inputs = document.all.tags("INPUT");
 for (var i=0; i < inputs.length; i++) // 遍历页面上所有的 input
  {
  if (inputs[i].type == "checkbox" && inputs[i].id == "x_horizon" )
   {
     if(inputs[i].checked)
        {
         var v_row=inputs[i].value;
         for(var j=4;j<q_grid.rows[v_row].cells.length-1;j++)
      {
  
  
    culcell=q_grid.rows[v_row].cells[j].childNodes[0];
    culcell.checked=true;//form.x_horizon.checked;
  
   }
        }
        if(!inputs[i].checked)
        {
         var v_row=inputs[i].value;
         for(var j=4;j<q_grid.rows[v_row].cells.length-1;j++)
   {
  
  
    culcell=q_grid.rows[v_row].cells[j].childNodes[0];
    culcell.checked=false;//form.x_horizon.checked;
  
   }
        }
       
       
    }     
  }
 
 
 
}
七.两种绑定方式的区别与用法:
1.<%#Bind("id")%>
直接绑定数据表中的列:用户内嵌的checkbox等控件
Text='<%#Bind("id")%>'
2.<%#   DataBinder.Eval(Container.DataItem,"sn")%>
绑定select出来的列,不一定是数据表中的。如排序用的sn:用于绑定需要有序的标志,当id做不得标志作用时,如要获得datagrid的行号时
Text='<%#   DataBinder.Eval(Container.DataItem,"sn")%>'
八.dategrid状态控制
function gridstate()
{
 for(var i=1;i<q_dbgrid0.rows.length;i++)
 {
  
  curcell=q_dbgrid0.rows[i].cells[6];
  funcell=q_dbgrid0.rows[i].cells[7];
  
   
  if(curcell.innerText=="已调出")
  {
   funcell.innerText="";
  }
 }
}
分享到:
评论

相关推荐

    datagrid技巧大全

    8. 性能优化:了解如何在大数据量时保持`datagrid`的流畅性,如使用虚拟化技术减少内存消耗。 9. 扩展性:学习如何与其他组件(如按钮、下拉菜单)集成,以及如何编写自定义监听器以实现更复杂的交互逻辑。 10. ...

    wpf通过datagrid操作数据库

    综上所述,通过熟练掌握WPF DataGrid和相应的数据绑定技术,开发者可以构建出强大的用户界面,使用户能够直接在界面上对数据库进行增删改查操作。实践中,需要注意数据安全、性能优化以及用户体验等方面,确保应用的...

    ADODC+Datagrid操作实例

    在这个实例中,我们关注的是"ADODC+Datagrid"的组合,这是一种常见的Windows应用程序开发技术,用于实现用户友好的数据操作界面。ADODC(ActiveX Data Objects for Data Control)是微软提供的一种组件,它允许在...

    VC++ DataGrid控件操作TEST源码

    总的来说,VC++ DataGrid控件操作和ADO技术的结合为开发者提供了一种直观且强大的方式来构建数据库驱动的应用程序。通过学习和实践这个测试源码,开发者不仅可以加深对MFC和ADO的理解,还能提高在实际项目中处理...

    通用的DataGrid操作

    在不同的开发环境中,实现`DataGrid`操作的具体技术会有所不同。在ASP.NET中,可以使用`GridView`、`EntityDataSource`或`LinqDataSource`等控件;在JavaScript框架如AngularJS或Vue.js中,可以使用`ng-grid`或`...

    Wpf datagrid 多选、单选、反选

    在Windows Presentation Foundation (WPF) 中,`DataGrid` 是一个强大的控件,常用于显示和操作表格数据。本篇文章将深入探讨如何实现`...理解并熟练应用这些技巧,能让你的`WPF`应用在数据操作上更加高效和用户友好。

    DataGrid使用技巧

    本篇文章将深入探讨DataGrid的使用技巧,帮助开发者更好地掌握这个强大的工具。 首先,我们来看DataGrid的基础用法。DataGrid通常与数据源绑定,这些数据源可以是DataSet、DataTable、ArrayList或其他类型的数据...

    WPF DataGrid合并单元格(模板列嵌套DataGrid)

    在WPF(Windows Presentation Foundation)开发中,DataGrid控件是一种常用的数据展示工具,它可以方便地展示和操作表格数据。本教程将详细讲解如何在DataGrid中实现单元格的合并,以及如何在模板列中嵌套另一个...

    WPF DataGrid数据复制

    在实际应用中,用户可能需要快速复制`DataGrid`中的数据以便进行其他操作,如粘贴到Excel或其他应用程序。本文将详细介绍如何实现这一功能。 首先,我们需要理解`DataGrid`的基本结构。`DataGrid`是基于MVVM(Model...

    datagrid

    - 为了处理大数据集,DataGrid可能采用虚拟化技术,只渲染屏幕上的数据行,降低内存占用和渲染时间。 6. **与框架的集成**: - 在Java环境中,DataGrid可能与Swing、JavaFX等桌面应用框架,或者JSF、Vaadin等Web...

    DataGrid连接Oracle

    至于文件名 "silverlight datagrid",这可能意味着项目使用了Silverlight技术,这是一种已过时的浏览器插件技术,用于构建富客户端应用程序。在Silverlight中,`DataGrid` 类似地用于数据展示和交互,但其API和功能...

    DataGrid 中加入图标

    DataGrid控件是许多编程语言和框架中的常见组件,用于在表格形式中显示和操作数据。在这个场景中,"DataGrid 中加入图标"是一个重要的知识点,它涉及到如何在DataGrid的单元格或者行中添加图标,以增强数据的可视化...

    datagrid-export.zip

    在“datagrid-export.html”中,可能包含了一个HTML页面,展示了如何触发导出操作,并可能包含了样式和结构的定义。在“datagrid-export.js”文件中,很可能包含了实际的JavaScript代码,用于处理数据获取和转换逻辑...

    Datagrid-filter插件

    4. 性能优化:在大数据量下,确保过滤操作的性能至关重要,可能需要优化查询算法或使用懒加载等技术。 5. 兼容性和适应性:考虑不同浏览器的兼容性,以及在不同屏幕尺寸和设备上的适配。 总之,`Datagrid-filter`...

    vb中datagrid控件的详细使用方法

    当数据量较大时,考虑使用虚拟化技术提高`DataGrid`的性能。虚拟化意味着只加载当前可视区域的数据,而不是一次性加载所有数据。 10. **自定义功能** 除了基本功能外,`DataGrid`还可以通过扩展来实现更多自定义...

    WPF动态添加行列DATAGRID

    在Windows Presentation Foundation (WPF) 中,DataGrid控件是一个非常强大...通过理解和运用上述技巧,我们可以根据需求构建灵活的数据展示和编辑界面。在实际开发中,要兼顾用户体验和性能,确保应用的稳定性和效率。

    datagrid-detailview.js datagrid-bufferview.js datagrid-groupview.js

    使用DetailView,可以提高用户体验,让用户无需离开当前页面就能查看和操作详细信息。 2. **BufferView**: BufferView是一种优化大量数据加载的技术。在BufferView模式下,datagrid只加载当前可视范围内的数据,...

    利用ADO和DATAGRID及HFLEXGRID方法对ACCESS进行操作

    以下是使用ADO、DATAGRID和HFLEXGRID进行ACCESS数据库操作的基本步骤: 1. **建立ADO连接**:首先,我们需要创建一个CADOConnection对象,设置连接字符串(包括数据库路径、用户名和密码),然后调用Open()方法建立...

    WPF DataGrid分页功能

    你可以在事件处理器中更新UI或执行其他操作。 5. **显示页码**:为了显示当前页和总页数,你需要计算总页数(`TotalPages = Math.Ceiling((double)totalCount / pageSize)`),并创建相应的导航按钮或者显示控件。 ...

    datagrid简单使用示例

    结合Servlet技术,DataGrid可以实现与服务器端的数据交互,为用户提供直观、可操作的数据视图。 首先,DataGrid是jQuery EasyUI框架的一部分,它是一个基于HTML表格的组件,提供丰富的功能,如分页、排序、过滤、...

Global site tag (gtag.js) - Google Analytics