`
380071587
  • 浏览: 479904 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

GridView中妙用LinkButton

 
阅读更多

说明:近来看到不少人想在DataGrid、GridView使用比较灵活的方式来编辑、查看、删除其中的数据选项(当然它们本身也内置了这些功能),却苦于找不到比较好的办法,本人结合实际代码说明一下如何使用LinkButton来实现上述功能。

--------------------------------------------GridViewLinkButton.aspx---------------------------------------------------------------
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="GridViewLinkButton.aspx.cs" Inherits="GridViewLinkButton" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>无标题页</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:GridView ID="gvPersonList" runat="server" AutoGenerateColumns="False">
<Columns>
<asp:BoundField DataField="Id" HeaderText="编号" />
<asp:BoundField DataField="Name" HeaderText="姓名" />
<asp:TemplateField HeaderText="性别">
<ItemTemplate>
<%# Eval("Sex").ToString()=="true"?"男":"女" %>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="Age" HeaderText="年龄" />
<asp:TemplateField HeaderText="婚否">
<ItemTemplate>
<%# Boolean.Parse(Eval("Married").ToString())==true?"是":"否" %>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="婚否">
<ItemTemplate>
<asp:LinkButton CommandArgument='<%# Eval("Id") %>' Enabled='<%# Boolean.Parse(Eval("Married").ToString())==true?false:true %>' Text="设为结婚" runat="server" OnCommand="SetMarried"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>

</div>
</form>
</body>
</html>

--------------------------------------GridViewLinkButton.aspx.cs------------------------------------------------
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class GridViewLinkButton : System.Web.UI.Page
{
private string firstName = "赵钱孙李周吴郑王冯陈诸卫蒋沈韩杨朱秦尤许何吕施张孔曹严华";
private string lastName="猛勇刚强豹彪雁燕蓉菲";
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
BindGridView();
}
}

private void BindGridView()
{
DataTable myData = CreateDataTable();
Session["MyData"] = myData;
gvPersonList.DataSource = myData;
gvPersonList.DataBind();
}
//手动生成DataTable
private DataTable CreateDataTable()
{
DataTable data = new DataTable();
DataColumn dcId = new DataColumn("ID", typeof(Int32));
dcId.AutoIncrement = true;
dcId.AutoIncrementSeed = 1;
dcId.AutoIncrementStep = 1;
data.Columns.Add(dcId);
data.Columns.Add(new DataColumn("Name",typeof(string)));
data.Columns.Add(new DataColumn("Age",typeof(int)));
data.Columns.Add(new DataColumn("Sex",typeof(bool)));
data.Columns.Add(new DataColumn("Married",typeof(bool)));
DataRow dataRow = null;
Random random = new Random();
for (int i = 0; i < 20; i++)
{
dataRow = data.NewRow();
//随机生成姓名
dataRow["Name"] = firstName.Substring(random.Next(firstName.Length), 1) + lastName.Substring(random.Next(lastName.Length), 1);
//随即生成介于20至100之间的年龄
int age = random.Next(20, 100);
dataRow["Age"] = age;
//随即设置性别
bool sex = (random.Next(100) % 2 == 0) ? true : false;
dataRow["Sex"] = sex;
if (((sex == true) && (age >= 22)) || ((sex == false) && (age >= 20)))//男性结婚年龄大于22周岁,女性结婚年龄大于20周岁
{
dataRow["Married"] = (random.Next(500) % 2 == 0) ? true : false;
}
else
{
dataRow["Married"] = false;
}
data.Rows.Add(dataRow);
}
return data;
}
//LinkButton的OnCommand事件的处理方法
public void SetMarried(Object sender, CommandEventArgs e)
{
e.CommandArgument.ToString();
DataTable data = Session["MyData"] as DataTable;
for (int i = 0; i < data.Rows.Count; i++)
{
if (data.Rows[i]["Id"].ToString() == e.CommandArgument.ToString())
{
data.Rows[i]["Married"] = true;
break;
}
}
gvPersonList.DataSource = data;
gvPersonList.DataBind();
}
}

-----------------------------------运行结果-----------------------------------------------------------------

可以看见,一旦某个人是已婚,则不能再设置为已婚状态了。
下图是将某些未婚人士设置成已婚后的截图。

分享到:
评论

相关推荐

    在GridView中LinkButton的属性的应用(如何不用选中就删除这一行)

    而LinkButton控件则可以作为GridView中的一列,提供用户操作,如删除、编辑等。在这个场景下,我们将讨论如何在GridView中应用LinkButton的属性来实现无需选中就能删除特定行的功能。 首先,我们需要理解GridView的...

    一个可保持GridView 在 Update Panel中滚动时的Header的位置相对不动的程序例子

    在ASP.NET开发中,GridView控件是用于展示数据表格的常用组件,而UpdatePanel则是实现页面部分刷新的关键元素。在动态网页中,当UpdatePanel更新内容时,可能会导致GridView的滚动位置重置,用户体验受到影响。标题...

    C#中GridView动态添加列的实现方法

    在C#编程中,GridView控件是ASP.NET中常用的数据展示控件,它允许开发者将数据库或其他数据源中的数据以表格形式展现出来。在某些情况下,我们可能需要根据不同的业务需求,动态地向GridView中添加列。这在处理不...

    GridView命令按钮示范

    在ASP.NET Web应用程序开发中,GridView控件是一个非常常用的数据展示工具,它允许开发者以表格的形式展示数据库或其他数据源中的数据。"GridView命令按钮示范"的主题着重于如何在GridView中添加和使用命令按钮,...

    Gridview删除行的前台提示(删除的是Gridview数据不是数据库中的)

    在Web开发中,使用ASP.NET的GridView控件进行数据展示是非常常见的做法。GridView提供了丰富的功能,包括分页、排序等,并且可以通过简单的配置来实现对数据的增删改查操作。本文将详细介绍如何在GridView中实现删除...

    gridview 全选和取消

    首先,在GridView中添加一个ButtonField或LinkButton,设置CommandName为"Delete",并在代码-behind中处理。 ```xml ``` ```csharp protected void GridView1_RowCommand(object sender, ...

    如何在gridView上实现如下的

    用户希望在GridView中实现以下功能:当点击GridView内的LinkButton时,能够触发一个ModalPopupExtender对话框的弹出。但是,在实现过程中遇到了几个问题: 1. 在页面加载时绑定LinkButton作为ModalPopupExtender的...

    Gridview控件的使用详解

    GridView 控件是 ASP.NET web 应用程序中最常用的数据_grid 控件之一,它提供了强大的功能来显示和编辑数据 Gridview 控件的使用是非常广泛的,特别是在数据展示和编辑方面。 Gridview 控件的基本使用 GridView ...

    Gridview按钮事件

    在实际应用中,我们经常需要在Gridview中加入自定义的按钮来实现特定的操作,例如删除记录或更改状态等。 #### 二、CommandArgument详解 在Gridview中的按钮事件处理中,`CommandArgument`是一个非常重要的属性。...

    用Gridview做的投票系统(四种方法).

    在ASP.NET开发中,Gridview控件是一个非常常用的组件,它能够轻松地展示数据并支持多种交互功能,如排序、分页和编辑。在本例中,我们将讨论如何利用Gridview构建一个投票系统。这个投票系统基于VS2005和SQL Server ...

    GridView中对绑定项进行删除和编辑的操作代码

    - 编辑按钮可以由`TemplateField`中的`LinkButton`或`ImageButton`创建,设置`CommandName`为"Edit",触发编辑操作。 4. 删除操作: - 为每一行添加一个删除按钮,同样使用`TemplateField`。`CommandName`设置为...

    GridView省略字符

    在.NET框架中,GridView是一个非常常用的控件,用于展示数据表格。它允许用户以美观、易于操作的方式显示来自数据库或其他数据源的数据。标题"GridView省略字符"涉及到一个常见的需求,即在数据过多时,如何优雅地...

    GridView删除行提示

    通过在`LinkButton`上添加`OnClientClick`属性并调用`confirm()`函数,我们可以在GridView中实现删除行前的用户确认提示。这种方法不仅增强了应用程序的用户体验,还有效地避免了因误操作而导致的数据丢失。同时,这...

    web用C#上传下载 gridview

    例如,可以在GridView的每一行数据项模板中添加一个LinkButton,分别绑定到上传和下载的事件处理程序。 对于上传,可以创建一个FileUpload控件,当用户点击上传按钮时,触发事件处理程序,执行上述文件上传代码。...

    响应 GridView 控件中的按钮事件

    2. **使用 `TemplateField`:** 另一种方式是在 `GridView` 控件中添加一个 `TemplateField`,并在其中放置 `Button`、`LinkButton` 或 `ImageButton` 控件。这种方式提供了更多的灵活性,允许你完全控制按钮的外观...

    最简单的GridView自定义分页

    在ASP.NET开发中,GridView控件是用于展示数据表格的常用工具,它提供了方便的数据绑定和操作功能。在处理大量数据时,为了提高用户体验和页面加载速度,通常需要实现分页功能。本教程将深入探讨如何实现“最简单的...

    C#操作gridview

    在.NET框架中,GridView是ASP.NET Web Forms控件库中的一个重要组成部分,用于显示和操作数据集,如数据库、数组或任何其他数据源。C#作为.NET的主要编程语言,与GridView结合,可以实现丰富的数据展示和交互功能。...

    gridview删除时弹出对话框

    在ASP.NET中,GridView是一个常用的数据展示控件,它允许我们将数据库中的数据以表格的形式展示给用户。当用户需要删除某一行数据时,为了防止误操作,通常会在点击删除按钮时弹出一个确认对话框。本篇将详细介绍...

    GridView实现自动编号

    1. **双击`GridView`的`OnRowDataBound`事件**:首先,在Visual Studio中打开包含`GridView`的页面,双击`GridView`控件的`OnRowDataBound`属性,这将自动生成一个处理方法,如`GridView1_RowDataBound`。...

Global site tag (gtag.js) - Google Analytics