`
ding20688
  • 浏览: 62282 次
  • 性别: Icon_minigender_1
  • 来自: 烟台
社区版块
存档分类
最新评论

WebGrid用法

 
阅读更多
首先安装Infragistics.NetAdvantage.for.ASP.NET.2007.Vol.2,然后在选择项中添加UltraWebGrid,使用方法如下:
1、添加“总计”值
绑定完数据后,添加如下代码
UltraWebGrid1.Rows.Add();                               
UltraWebGrid1.Rows.Add();                         
UltraWebGrid1.Rows[UltraWebGrid1.Rows.Count - 1].Cells[0].Text = "小计";    //倒数第一行
UltraWebGrid1.Rows[UltraWebGrid1.Rows.Count - 2].Cells[0].Text = "总计";
double sum = 0;
string strtemp = string.Empty;
for (int i = 0; i < UltraWebGrid1.Rows.Count - 1; i++)
       {
      if (UltraWebGrid1.Rows[i].Cells[2].Value != null)
       {
           strtemp = UltraWebGrid1.Rows[i].Cells[2].Value.ToString();
           sum += Convert.ToDouble(strtemp);
         }
        }
UltraWebGrid1.Rows[UltraWebGrid1.Rows.Count - 1].Cells[2].Value = sum;
2、单击单元格选中行
(1) 选择UltraWebGrid-displayout-->CellClickActionDefault=RowSelected
(2) 选择UltraWebGrid—displayout-->SelectedRowStyleDefault的BackColor属性,设置颜色。
3、显示自动列号
RowSelectorsDefault="Yes" AllowRowNumberingDefault="ByDataIsland"
4、隐藏一列
UltraWebGrid1.Columns[i].Hidden=true;
5、添加模板列
(即在绑定数据外,添加的列):先选择UltraWebGrid --属性--columns--勾选Templated column 即可。
6、增加Checkbox
第一种方法:在表格的InitializeRow事件中添加如下代码
if (e.Row.Band.Index == 0)
    {
     string str = string.Empty;
     str = "<input id='chk" + e.Row.Index + "' type='checkbox' name='chkName" + e.Row.Index + " ' />";
     e.Row.Cells[0].Text = str;
        }
第二种方法:
绑定数据后,添加
GridTake.Columns[0].Type = ColumnType.CheckBox;     //设定第0列的数据类型
GridTake.Columns[0].AllowUpdate = AllowUpdate.Yes;//设置checkbox是否可用。
GridTake.Columns.FromKey("CHK").Type= ColumnType.CheckBox;
GridTake.Columns.FromKey("CHK").AllowUpdate = AllowUpdate.Yes;
for (int i = 0; i < GridTake.Rows.Count; i++)
    {
      GridTake.Rows[i].Cells[0].Value = false;     //初始化checkbox
    }
//全选checkbox
protected void cbCheckAll_CheckedChanged(object sender, EventArgs e)
    {
        if (cbCheckAll.Checked)
        {
            for (int i = 0; i < GridTake.Rows.Count; i++)
            {
                GridTake.Rows[i].Cells[0].Value = true;
            }
        }
        else
        {
            for (int i = 0; i < GridTake.Rows.Count; i++)
            {
                GridTake.Rows[i].Cells[0].Value = false;
            }
        }
   
//批量删除数据
if (GridTake.DisplayLayout.SelectedRows.Count < 1)
        {
            Response.Write("<script language='javascript'>alert('请选择要删除的行');</script>");
            return;
        }
        for (int i = 0; i < GridTake.Rows.Count; i++)
        {
            if (GridTake.Rows[i].Cells[0].Value.ToString()=="true")
            {
                try
                {
                    string sql = "delete from test5 where wno='" + GridTake.Rows[i].Cells[2].Value.ToString()  +"'";
                    OracleHelper.ExecuteSql(sql);
                }
                catch (Exception ex)
                {
                    Response.Write("<script language='javascript'>alert('" + ex.Message + "')</script>");
                }
            }
        }
        //GridTake.Rows.Remove(GridTake.DisplayLayout.SelectedRows[0]);
       
        Response.Write("<script language='javascript'>alert('删除成功!');</script>");
        GridDataBind();
删除数据
if (GridTake.DisplayLayout.SelectedRows.Count < 1)
        {
            Response.Write("<script language='javascript'>alert('请选择要删除的行');</script>");
            return;
        }
        try
        {
            string sql = "delete from employees where id='" + GridTake.DisplayLayout.SelectedRows[0].Cells[0].Text + "'";
            SqlConnection conn = new SqlConnection(connstr);
            SqlCommand cmd = conn.CreateCommand();
            cmd.CommandType = CommandType.Text;
            cmd.CommandText = sql;
            conn.Open();
            cmd.ExecuteNonQuery();
            conn.Close();
            GridTake.Rows.Remove(GridTake.DisplayLayout.SelectedRows[0]);
        }
        catch (Exception ex)
        {
            Response.Write("<script language='javascript'>alert('" + ex.Message + "')</script>");
        }
        Response.Write("<script language='javascript'>alert('数据删除成功!');</script>");

WebGrid中Checkbox的全部选择和取消全部选择
protected void cbCheckAll_CheckedChanged(object sender, EventArgs e)
    {
        if (cbCheckAll.Checked)
        {
            for (int i = 0; i < GridTake.Rows.Count; i++)
            {
                GridTake.Rows[i].Cells[0].Value = true;
            }
        }
        else
        {
            for (int i = 0; i < GridTake.Rows.Count; i++)
            {
                GridTake.Rows[i].Cells[0].Value = false;
            }
        }
    }
WebGrid的固定列功能
具体步骤:
(1) 在UltraWebGrid下的DisplayLayout中把TableLayout属性设为:Fixed ; UseFixedHeaders设为:True
//这是指定Grid允许固定列              StationaryMargins="Header"  //这使Header始终在最上面显示
(2)  设定列固定: Header下面的Fixed设置为true。这样就可以实现ID固定了,还有一个功能就是,点击后面的任何一个列后的“图钉”图标,就可以任意进行多列固定了。如下图为我点击了“ContactName”的效果:这种功能的实现,只要修改一个属性:FixedHeaderIndicatorDefault="Button"就可以了。

中文标题,在绑定数据后,增加
Private void SetGridHeader()
{
//DisplayLayout---view type可调节显示的模式 Flat,Hierarchical, OutlookGroupBy
    UltraWebGrid1.Bands[0].Columns[0].Header.Caption = "序号";
    UltraWebGrid1.Bands[0].Columns[1].Header.Caption = "产品号";
//调节表格除标题以外的表格元素的排列方式
this.UltraWebGrid1.Bands[0].Columns[0].CellStyle.HorizontalAlign = HorizontalAlign.Center;
this.UltraWebGrid1.Bands[0].Columns[1].CellStyle.HorizontalAlign = HorizontalAlign.Left;
//设定表格列的宽度,其中2代表2%,如果是30,代表30%
this.UltraWebGrid1.Bands[0].Columns[0].Width = Unit.Percentage(2);
}
//设定表格的纵向,相同值单元格的合并
//表格中,行rows是从0开始排的,列 cells也是从0开始排的。
//MergerRow代表行,MergerRow = 0代表表格的第一行
//cells[2]代表第三列,意思是我要将第三列有相同数值的单元格合并。
//这个东东放在绑定数据的后面
int MergerRange = 1;
        int MergerRow = 0;
        for (int irow = 1; irow < gridTake.Rows.Count; irow++)
        {
            if (gridTake.Rows[MergerRow].Cells[2].Text == gridTake.Rows[irow].Cells[2].Text)
            {
                MergerRange++;           //MergerRange代表要合并的单元数量。
            }
            else
            {
                gridTake.Rows[MergerRow].Cells[2].RowSpan = MergerRange;
                MergerRow = irow;
                MergerRange = 1;
            }
            if (irow == gridTake.Rows.Count - 1)
            {
                gridTake.Rows[MergerRow].Cells[2].RowSpan = MergerRange;
            }
        }
表格中超级链接的设定:
//rowloop控制表格中行的移动
//Cells[0]表示第一列的各项要设置超链接。
//facxTC.aspx链接的文件
for (int rowLoop = 0; rowLoop < QryWebGrid.Rows.Count; rowLoop++)
   {
     if (QryWebGrid.Rows[rowLoop].Cells[0].Text != "")
        {
     QryWebGrid.Rows[rowLoop].Cells[0].Text = "<a style='cursor:hand' onclick=\"window.open('FacxTC.aspx?DetailItemNo=" + QryWebGrid.Rows[rowLoop].Cells[1].Text
     + "&No=3"
     + "',null,'height=910px,width=1000px,top=50, left=100, toolbar=no, menubar=no, scrollbars=no, resizable=yes,location=no, status=no') ;  \"><u>"
     + QryWebGrid.Rows[rowLoop].Cells[0].Text + "</u></a>";
         }
}
//修改表格数据时,将选择的表格数据显示在文本框或其他控件中
private void GridToText()
    {
        txtUserName.Text = GridTake.DisplayLayout.ActiveRow.Cells[1].ToString();
        txtUserPass.Text = GridTake.DisplayLayout.ActiveRow.Cells[2].ToString();
        rdoSex.SelectedValue = GridTake.DisplayLayout.ActiveRow.Cells[3].ToString();
}
//文本框的值传到表格上
private void InsertGrid()
    {
        GridTake.Rows.Add();
        int rownum = GridTake.Rows.Count-1;
        GridTake.Rows[rownum].Cells[0].Value = TextBox1.Text;
        GridTake.Rows[rownum].Cells[1].Value = TextBox1.Text;
        GridTake.Rows[rownum].Cells[2].Value = TextBox1.Text;
}

//Webgrid添加checkbox批量删除
设置UltraWebGrid的第0列为模板列(UltraWebGrid --属性--columns--勾选Templated column 即可),加入CheckBox控件(Behavior--type下选择Checkbox),判断其状态是否被选中,代码如下
//可以写在任何地方,属于通用代码
Infragistics.WebUI.UltraWebGrid.TemplatedColumn    tcol   =   (TemplatedColumn)UltraWebGrid1.Bands[0].Columns[0];//模板列
foreach(CellItem    item   in    tcol.CellItems) 
   {             
           System.Web.UI.WebControls.CheckBox    chkIsHaveRight   =    (System.Web.UI.WebControls.CheckBox)item.FindControl("chbShenhe"); 
          if(chkIsHaveRight.Checked  ==  true) 
           { 
                  //进行相关的操作
            }
   }
分享到:
评论

相关推荐

    asp.net MVC WebGrid源码

    例如,可以使用`WebGrid.Bind()`方法绑定数据,`WebGrid.Column()`定义列的显示,`WebGrid.Pager()`设置分页,以及`webGrid.Sort()`进行排序设置。 总的来说,"PhototsMVC"项目展示了如何在ASP.NET MVC框架下实现...

    ASP.NET用WebGrid帮助文件

    默认情况下,WebGrid会自动输出完整的表格结构,但也可以通过`RenderFragment`方法自定义输出。例如,可以自定义分页链接的样式和行为。 6. **事件处理**:WebGrid提供了如`Row`和`PageIndexChanging`等事件,可以...

    ASP.NET MVC4中的WebGrid

    接下来,我们可以使用HTML辅助方法来渲染WebGrid,像这样: ```csharp @grid.GetHtml( tableStyle: "webGrid", headerStyle: "header", footerStyle: "footer", alternatingRowStyle: "alt", columns: grid....

    WebGrid ASP.NET DataGrid Control-开源

    下面将详细介绍WebGrid控件的主要特性、使用方法以及与开源软件相关的知识点。 首先,WebGrid的核心功能是无代码数据绑定。这意味着开发者无需编写大量代码即可将数据源(如数据库、XML或JSON)绑定到网格中。只需...

    Python库 | WebGrid-0.1.37-py3-none-any.whl

    资源分类:Python库 所属语言:Python 使用前提:需要解压 资源全名:WebGrid-0.1.37-py3-none-any.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    WebGrid标头对齐和排序图标

    在ASP.NET MVC应用中,WebGrid控件是一个非常实用的工具,用于呈现表格数据。它提供了许多内置功能,包括列的自动对齐和排序。在本篇内容中,我们将深入探讨"WebGrid标头对齐和排序图标"这一主题,以及如何通过...

    如何在Webgrid中隐藏列标题

    另一种方法是在`WebGrid`的`GetHtml`方法中,为特定列定义一个自定义模板,并在模板中移除标题文本。例如: ```csharp @grid.GetHtml( columns: grid.Columns( grid.Column("ID"), grid.Column("Name"), grid....

    如何在MVC 3 razor + asp.net中将texbox添加到webgrid的页脚中

    7. **WebGrid实例化**:在控制器中,我们创建WebGrid实例时,可以设置`HasFooter`属性为`true`,然后在生成表格时使用`WebGrid.Column`方法定义列,对于页脚的文本框,可以使用`format`参数传递一个自定义的HTML片段...

    一个ViewGrid控件

    使用方法(设置属性): MouseOverCssClass - 鼠标经过行时行的 CSS 类名 2、对多个字段进行复合排序;升序、降序的排序状态提示 使用方法(设置SmartSorting复合属性): AllowSortTip - 是否启用排序提示 ...

    javascript web grid demo

    3. 文档:详细说明了Grid的API、配置选项和方法,帮助开发者理解和使用。 通过深入研究这两个库的示例和文档,你可以学习如何在Web应用中有效地管理和展示数据,提升用户体验。无论是开发企业级应用还是个人项目,...

    TMS IntraWeb Component Pack Pro 4.9.0.0

    "TMS IntraWeb Component Pack Pro 4.9.0.0 (6 Feb 2012) FS incl Help and Demos"这一版本发布于2012年,包含了完整的帮助文档和演示项目,有助于开发者快速上手和深入了解组件的用法。虽然版本相对较老,但其核心...

    在视图窗口中动态创建ActiveX控件FlexGrid

    4. 添加到视图窗口:将创建的FlexGrid控件添加到视图窗口上,通常通过调用父容器(如Form或UserControl)的Controls集合的Add方法实现,如`Me.Controls.Add(flexGrid)`。 5. 绑定数据:如果需要,可以将数据源绑定...

    从mvc3 Web网格标题中删除排序箭头符号

    在ASP.NET MVC3中,我们通常在视图(View)中使用WebGrid,通过实例化WebGrid类并传入数据源来创建表格。例如: ```csharp @{ var grid = new WebGrid(source: Model, defaultSort: "ColumnName", rowsPerPage: 10...

    Asp.Net MVC 3资料+实例

    `ASP.NET MVC3 Razor视图引擎.pdf`可能会深入讨论Razor视图引擎的特性和使用技巧,如辅助方法、条件语句、循环结构、嵌套视图、部分视图等。此外,它可能还包含关于HTML编码、CSS样式和JavaScript集成的指导。 `ASP...

    mvc4中运用datagrid

    3. **WebGrid的使用** WebGrid是ASP.NET MVC框架提供的一种简单的方式,可以用来快速创建表格。在MVC4中,我们可以在视图中直接实例化WebGrid对象,绑定数据源,并通过其方法设置列、排序、分页等特性。例如: ```...

    ASP.NET资料库

    ASP.NET提供了多种方法来生成静态内容,如Response.Write、Server.Execute或者使用HttpHandler。 "Asp.NET 操作配置文件.doc"文件可能讲解了如何在ASP.NET中读取和修改应用程序的配置文件(web.config)。ASP.NET...

    WebMatrix 学习教程

    - **使用WebGrid Helper显示数据**:介绍了如何使用WebGrid Helper来展示从数据库中检索的数据。 - **自定义列的显示**:允许对显示的列进行定制化处理,比如排序、筛选等。 - **样式调整**:提供了对整个网格样式的...

    ASP.NET WEB程序设计.doc

    这些知识点涵盖了 ASP.NET 开发的基本概念,如 Web 控件的使用、数据绑定、图表生成以及网络应用程序架构的理解。通过解答这些题目,开发者可以深入理解 ASP.NET 的核心机制和工作流程,提高开发效率。

Global site tag (gtag.js) - Google Analytics