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();
    }
}
-----------------------------------运行结果-----------------------------------------------------------------
可以看见,一旦某个人是已婚,则不能再设置为已婚状态了。
下图是将某些未婚人士设置成已婚后的截图。
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/549808.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机ppt文字1是什么原因,ppt让答案一个个出现,ppt让文字一个个出现

在使用Windows 10工作时会遇到形形色色的问题&#xff0c;比如开机发现无法连接网络。那么如何进行故障排除呢&#xff1f;下面小编与你分享具体步骤和方法。工具/材料Windows 10操作系统操作方法01启动Windows 10操作系统&#xff0c;如图所示。点击任务栏搜索框&#xff0c;开…

Taro-UI 2.0样式在H5上生效,微信小程序不生效?

答案&#xff1a; https://taro-ui.aotu.io/#/docs/questions taro-ui 自定义样式覆盖小程序组件样式使用到了 globalClass 这个微信小程序特性&#xff0c;由于微信小程序的限制&#xff0c;自定义的样式需要在 page 页面内使用&#xff0c;不能基于第三方组件再进行一层封装&…

抢先试用ReSharper UnitRun™ 1.0

在发布又一款免费的VS2005单元测试插件后随即安装了个ReSharper UnitRun™ 1.0玩玩&#xff0c;发现的确有其亮点&#xff0c;尤其喜欢的是在执行单元测试的过程中居然支持调试。 在安装过程中遇到个问题&#xff0c;一个注册的异常&#xff0c;后来到其官网上注册并得到个lice…

湖北工业大学计算机专硕学费,2019年湖北工业大学硕士研究生学费奖助政策

(一)全日制研究生奖助政策&#xff1a;1.对象&#xff1a;为具有中华人民共和国国籍&#xff0c;取得学校研究生学籍&#xff0c;在基本学制年限内、无固定工资收入且人事档案转入我校的全日制非在职研究生。2.奖助标准&#xff1a;(1)符合国家政策的研究生将获得国家助学金0.6…

python day27

今日内容 知识点补充 import jsonfrom datetime import datetime,date""" res {c1:datetime.today(),c2:date.today()} print(json.dumps(res)) 返回结果:TypeError: Object of type datetime is not JSON serializable """ class MyJson(json.…

I must be strong and carry on

扔掉的东西&#xff0c;特别是在时间里丢掉的&#xff0c;永远也回不来了。如我的正在逝去青春。 相信命运和缘分的东西。为什么自己会在这里&#xff0c;会认识周围的人&#xff0c;会和他们成为很好的朋友。努力完成自己的事情&#xff0c;不管成败。成则不骄&#xff0c;败则…

动态css语言less,less让css具有动态语言的特性

Less 是一种样式语言&#xff0c;它将 css 赋予了动态语言的特性&#xff0c;如变量、 继承、 运算、 函数。less 既可以在客户端上运行(支持IE 6, Webkit, Firefox)&#xff0c;也可以借助 Node.js 或者 Rhino 在服务端运行。Less 做为 css 的一种形式的扩展&#xff0c;它并没…

硬件_LED

LED 平台&#xff1a;全志A64 源码&#xff1a;Android 7.1 Linux 3.1 led.c 1 //没有使用平台总线2 3 #include <linux/init.h>4 #include <linux/module.h>5 #include <linux/fs.h>6 #include <linux/device.h>7 #include <linux/slab.h>8 #i…

思科考试报名流程

有考生经常来信来电咨询&#xff0c;关于认证注册和考试报名流程的相关内容&#xff0c;针对这点中国思科注册网就为大家整理了以下详细的解释。 1、报名地点及联系方式&#xff1a;思科考试报名地点&#xff1a;a.选择您所在城市报名点报名&#xff1b;b.选择中国思科注册网报…

水星路由器DNS服务器未响应,水星路由器进不去设置怎么办

摘 要水星路由器进不去设置怎么办&#xff1f;这里要分两种情况&#xff0c;旧版水星路由器与新版水星路由器一、旧版水星路由器 1、当打开水星路由器设置页面&#xff0c;如果提示你输入用户名和密码&#xff0c;如下图所示。说明这是一台旧版本的水星路由器水星路由器进不去设…

DotNet程序员是不是最不幸福?

自我学C#和ASp.net时就来逛DotNet区&#xff0c;总是时不时有人问“学.net是不是没有前途&#xff1f;”&#xff0c;总是有人“报怨.net程序人收入比某某要低”。还有人说“在中国&#xff0c;程序人干不到老。”我也曾心动过&#xff0c;想过放弃。 但是&#xff0c;冷静下来…

zookeeper 简介

什么是ZookeeperZookeeper是一个分布式开源框架&#xff0c;提供了协调分布式应用的基本服务&#xff0c;它向外部应用暴露一组通用服务——分布式同步&#xff08;Distributed Synchronization&#xff09;、命名服务&#xff08;Naming Service&#xff09;、集群维护&#x…

discuz的ajax,discuz分页函数改成基于jqueryd的ajax分页函数

/***AJAX分页*$num 为总共的条数 比如说这个分类下共有15篇文章*$perpage为每页要显示的条数*$curpage为当前的页数*$url为请求路径&#xff0c;*$obj为html对象&#xff0c;返回给jqery处理*$page为$multipage这个字符串中要显示的表示页数的变量个数*$maxpages为最大的页数…

北大青鸟:比尔盖茨:我在微软的10大失误

北大青鸟&#xff1a;比尔盖茨&#xff1a;我在微软的10大失误来源&#xff1a;[url]http://www.accp-teem.com.cn/ArticleView/2007-7-11/Article_View_1172.Htm[/url] 微软上周四宣布&#xff0c;从2008年7月开始&#xff0c;董事会主席比尔盖茨将不再负责公司的日常管理&…

网格 优化光顺

简介 网格光滑在计算机图形学中广泛应用。因为从自然界采集的雕像带有很多的噪声。本文对 论文 Laplacian Mesh Optimization 当然错误难以避免&#xff0c;本人水平不足造成错误&#xff0c;希望读者能给予我及时的反馈&#xff0c;本人感激不尽 使用简介 Laplacian Mesh Opti…

2进制、8进制、10进制、16进制...各种进制间的轻松转换(c#)

在.NET Framework中&#xff0c;System.Convert类中提供了较为全面的各种类型、数值之间的转换功能。其中的两个方法可以轻松的实现各种进制的数值间的转换&#xff1a; Convert.ToInt32(string value, int fromBase)&#xff1a; 可以把不同进制数值的字符串转换为数字&#x…

小程序的服务器怎么与数据库连接,小程序怎么连接服务器数据库

小程序怎么连接服务器数据库 内容精选换一换“数据导出”章节适用于MRS 3.x及后续版本。Loader是实现MRS与关系型数据库、文件系统之间交换数据和文件的ETL工具&#xff0c;支持将数据或者文件从MRS系统中导出到关系型数据库或文件系统中。Loader支持如下数据导出方式&#xff…

iPad软件提交注意事项

这是CocoaChina会员 "stlau"根据自己的iPad软件提交经验总结的注意事项&#xff0c;希望大家留意一下&#xff0c;避免软件被苹果审核人员拒绝放行。帖 子地址 http://www.cocoachina.com/bbs/read.php?tid-17119.html肯 定会被拒的情况&#xff1a;1. app命名&…

SQL Assistant v2.5.12 序列号

715253-4G50IRL-1L44-5055 715253-4G50IRL-SL44-5055 715253-4G50IRL-EL44-5055转载于:https://www.cnblogs.com/hzuIT/articles/830208.html

啪啪三国2获取服务器信息,啪啪三国2怎么快速的获得资源?

啪啪三国2&#xff1a;在啪啪三国2手游中有很多特色的玩法&#xff0c;还有很多资源&#xff0c;游戏中有很多地方需要用到&#xff0c;有点供不应求的感觉&#xff0c;很多玩加都想要快速的获得各种资源。小伙伴们知道该怎么快速获得吗&#xff1f;这里小编就给大家来详细的介…