用代码创建DataGrid的多链接及checkbox事件响应(downmoon)

Innovus Function ECO实战:5步搞定数字后端设计中的网表修正(含Calibre LVS验证技巧) 本文提供了一份完整的Innovus Function ECO实战指南,详细解析了数字后端设计中网表修正的五步流程。从理解Function ECO概念、准备关键文件,到在Innovus中执行逻辑比对、自动布线及GUI检查,并重点攻克了ECO后Calibre LVS验证的难点与调试技巧,帮助工程师高效、精准地完成流片前的设计微调。 阅读详情

本例用代码实现了创建DataGrid并响应了CheckBox事件,并实现了超链接列的多变量传送。

创建一个前台页面
CreateDataGrid.aspx:
在Form中添加一个PlcaeHolder,ID为"ph",Runat="Server"
后台页面
CreateDatagrid.aspx.cs

     public class CreateDataGrid : System.Web.UI.Page
    
{
        
public String sql = "Select FirstName,LastName,HomePhone,Title FROM Employees";
        
public DataGrid mygrid = new DataGrid();
        
protected System.Web.UI.WebControls.PlaceHolder ph;
        
public String SortExpression;
        
private void Page_Load(object sender, System.EventArgs e)
        
{
              
//CreateDataGridForm.Controls.Add(MakeGrid());
            
            
this.ph.Controls.Add(MakeGrid());
        }

//        protected override void CreateChildControls()
//        {
            
            
//base.CreateChildControls ();
        
//}

        
Web 窗体设计器生成的代码
        
/// <summary>
        
/// 创建一个模板列和一个列模板
        
/// </summary>


        
public TemplateColumn tm = new TemplateColumn();
        
public ColumnTemplate mycol = new ColumnTemplate();

        
//返回DataView
        public DataView CreateDataSource ()
        
{
            
string strSql;
            strSql 
= "Data Source=localhost;Initial Catalog=Northwind;User Id=sa;Password=sa;";
            SqlConnection conn 
= new SqlConnection(strSql);
            SqlDataAdapter db_sqladaptor 
= new SqlDataAdapter(sql,conn);
            DataSet ds 
= new DataSet();
            db_sqladaptor.Fill(ds,
"Employees");
            DataView myView 
= ds.Tables["Employees"].DefaultView;
            
//myView.Sort=SortExpression;
            
//Response.Write(sql);
            return myView;
        }


        
/// <summary>
        
/// 处理排序
        
/// </summary>
        
/// <param name="sender"></param>
        
/// <param name="e"></param>

        public void Sort_Grid(Object sender, DataGridSortCommandEventArgs e)
        
{
            SortExpression 
= e.SortExpression.ToString();
            Session[
"SortField"]=SortExpression.Trim();
            
if(Session["Order"]==null) Session["Order"] = "ASC";
            Session[
"Order"] = (Session["Order"].ToString()=="DESC")?"ASC":"DESC";
            
if(Session["SortField"]==null) Session["SortField"] = "FirstName";
            sql 
+= " ORDER BY "+Session["SortField"].ToString() + " " + Session["Order"].ToString();
            mygrid.DataSource 
= CreateDataSource();
            mygrid.DataBind();
        }

        
/// <summary>
        
/// 创建和设置DataGrid属性,这里的属性设置为固定值,但也可以动态设置
        
/// </summary>
        
/// <returns></returns>


        
public DataGrid MakeGrid()
        
{
            mygrid.CellPadding
=2;
            mygrid.Attributes.Add(
"align","center");
            mygrid.CellSpacing
=0;
            mygrid.Width
=500;
            mygrid.BorderWidth
=1;
            mygrid.BorderColor
=ColorTranslator.FromHtml("Black");
            mygrid.AutoGenerateColumns
=false;
            mygrid.ForeColor
=ColorTranslator.FromHtml("Black");
            mygrid.Font.Size
=9;
            mygrid.Font.Name
="宋体";
            mygrid.AllowSorting
=true;

            
///sort命令的事件处理器

            
//mygrid.SortCommand += new DataGridSortCommandEventHandler(Sort_Grid);
            mygrid.ItemDataBound +=new DataGridItemEventHandler(mygrid_ItemDataBound);

            
///设置headerstyle
            mygrid.HeaderStyle.BackColor=ColorTranslator.FromHtml("Gold");
            mygrid.HeaderStyle.ForeColor
=ColorTranslator.FromHtml("Black");
            mygrid.HeaderStyle.Font.Name
="宋体";
            mygrid.HeaderStyle.Font.Size
=9;
            mygrid.HeaderStyle.Font.Bold
=true;
            mygrid.HeaderStyle.HorizontalAlign
=HorizontalAlign.Center;

            
///设置alternating style
            mygrid.AlternatingItemStyle.BackColor=ColorTranslator.FromHtml("Silver");
            mygrid.AlternatingItemStyle.ForeColor
=ColorTranslator.FromHtml("Black");

            
///设置itemstyle
            mygrid.ItemStyle.HorizontalAlign=HorizontalAlign.Left;

            
///创建绑定列和属性

            HyperLinkColumn FirstName 
= new HyperLinkColumn();
            BoundColumn LastName 
= new BoundColumn();
            BoundColumn HomePhone 
= new BoundColumn();
            BoundColumn Title 
= new BoundColumn();

//            FirstName.HeaderText="名字";
//            FirstName.DataField="FirstName";
//            FirstName.SortExpression="FirstName";

            FirstName.HeaderText
="名字";
            
            FirstName.DataTextField 
="FirstName";
            FirstName.SortExpression
="FirstName";
            FirstName.NavigateUrl 
= "http://localhost/test.aspx";

            LastName.HeaderText
="姓";
            LastName.DataField
="LastName";
            LastName.SortExpression
="LastName";

            HomePhone.HeaderText
="电话";
            HomePhone.DataField
="HomePhone";
            HomePhone.SortExpression
="HomePhone";

            Title.HeaderText
="职务";
            Title.DataField
="Title";
            Title.SortExpression
="Title";

            mygrid.Columns.AddAt(
0, FirstName);
            mygrid.Columns.AddAt(
1, LastName);
            mygrid.Columns.AddAt(
2, HomePhone);
            mygrid.Columns.AddAt(
3, Title);

            
///设置模板列属性和ItemStyle模板
            tm.HeaderText="**删除信息**";
            tm.HeaderStyle.HorizontalAlign
=HorizontalAlign.Center;
            tm.ItemStyle.BackColor 
= ColorTranslator.FromHtml("#FFF778");
            tm.ItemStyle.HorizontalAlign
=HorizontalAlign.Center;
            

            TemplateColumn aa
=new TemplateColumn();
            ColumnTemplate1 tt 
= new ColumnTemplate1();
            aa.ItemTemplate 
= tt;

            
            
///创建列模板。
            
///列模板从ITemplate继承

            tm.ItemTemplate = mycol;
            mygrid.Columns.AddAt(
4, tm);
            mygrid.Columns.AddAt(
5,aa);  

            
///绑定和返回
            mygrid.DataSource = CreateDataSource();
            mygrid.DataBind();
            
return mygrid;
        }


        
private void mygrid_ItemDataBound(object sender, DataGridItemEventArgs e)
        
{
            
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
            
{
                HyperLink link  
= (HyperLink)e.Item.Cells[0].Controls[0];  
                
string url = link.NavigateUrl;
    
//实现多参数链接
                url += "?id=" + e.Item.Cells[1].Text + "&id2=" + e.Item.Cells[2].Text;
                link.NavigateUrl 
= url;
            }

        }

    }

 
 



再添加关键的几段

 ///  ColumnTemplate 从ITemplate继承。
    
///  "InstantiateIn"定义子控件的属于谁


    
public class ColumnTemplate : ITemplate
    
{

        
public void InstantiateIn(Control container)
        
{
            Label myLabel 
= new Label();
            myLabel.Text
="点击删除";
            CheckBox mycheckbox 
= new CheckBox();
            container.Controls.Add(myLabel);
            container.Controls.Add(mycheckbox);
        }


    }
 


添加CheckBox事件:

public class ColumnTemplate1 : ITemplate
    
{

        
public void InstantiateIn(Control container)
        
{
            Label myLabel 
= new Label();
            myLabel.Text
="test";
            CheckBox lnk 
= new CheckBox();
            lnk.AutoPostBack 
= true;
            lnk.CheckedChanged 
+=new EventHandler(lnk_CheckedChanged);
            container.Controls.Add(myLabel);
            container.Controls.Add(lnk);
        }



        
private void lnk_CheckedChanged(object sender, EventArgs e)
        
{
            CheckBox lnk 
= (CheckBox)sender;
            DataGrid dg 
= (DataGrid)lnk.NamingContainer.NamingContainer;
            
if(dg == null) return;
             
//实现CheckBox事件响应
            DataGridItem di =(DataGridItem)lnk.NamingContainer;
            HyperLink lnkID= (HyperLink)di.Cells[0].Controls[0];
            string s2 =  lnkID.Text.Trim()+lnk.ID+"被选中了!"
;
        }

    }

SpringSecurity(15)——OAuth2密码模式 SpringSecurity Oauth2密码模式 阅读详情

相关推荐

超实用!用ChimeraX对AlphaFold 结果可视化(中): 蛋白结构美化篇

而一般需要的背景颜色是无色(白色),有三种方法可以更改背景颜色,这里我们介绍两种方法,第三种在下一小节中讲解。如果想选中蛋白链中的某一结构区域或者某些位点,可以用Ctrl+Shift+鼠标左键,或在软件窗口中点击。在这个窗口中可以对蛋白的主链、侧链、表面等颜色进行修改,只用在。,即可在右下角看到我们蛋白的序列信息,在这里面直接用鼠标选择要选择的结构域。就会有更多的颜色供我们选择,如果有特定的色号还可以在这个界面继续选择。后面的颜色(②),就可以选择想要的任何背景颜色(③)。就可以选择软件推荐的常用颜色。

m0_63153079的博客 5478

原创 c# 封装的带CheckBox的DataGridViewColumnHeaderCell 源码部分 实现DataGridView列头带CheckBox控件实现全选功能,支持列头带标题...

在国外的源码网站看到一个带CheckBox的源码的。可惜的是,他不支持列头显示文字,而且全选功能是需要自己写好函数手动添加到他的事件里面。它实现的办法是在cell直接绘制一个CheckBox框。而我这个是在cell里创建一个CheckBox对象,把Checkbox控件加载到DataGridView容器中,最后用这个CheckBox覆盖这个Cell。目前先释出源码,以后会再封装一个与之适应的Data...

weixin_30268921的博客 342

用AI画电路板AI EDA初探Creating WiFi Radio with CELUS: A Step-by-Step Tutorial 使用CELU.IO创建WiFi收音机:分步教程

结论:整体还不太成熟,所选器件单元是欧美思维,器件选型成本和咱们华强北还是无法比。可以关注迭代,看客就当走马观花就行了;不过里面的单元模块还带有AI提问的这个比较好,值得国内EDA从业者学习。话不多说上正文:本教程目的是让我们深入了解如何使用CELUS设计平台构建WiFi收音机实战项目。本指南的重点是使用该平台来选择正确的解决方案,并整合一个项目,让您可以将音乐和节目从互联网直接传输到您自己构建的扬声器。

2301_81235726的博客 1万+

checkbox居中 editor_C1FlexGrid绑定自定义Editor-C1CheckBox

在WinForm平台下,C1FlexGrid可以设置自定义Editor,比如自定义一个ColorPicker等控件放到C1FlexGrid中。本文就基于这个,介绍添加C1CheckBox作为C1FlexGrid的Editor,并且该列是数据绑定的情况。首先设置数据源。数据源里有个Flag字段是String类型,显示Y,N。 //Create & populate first tableD...

weixin_36223355的博客 404

逆向拆解dy接口a_bogus 1.0.1.19版本核心算法(纯算版)第二部分

本文深入解析了dy接口a_bogus 1.0.1.19版本的核心算法,重点介绍了逆向分析的基础方法论、魔改Base64编码识别与还原、随机数生成与位运算解析等关键技术。通过详细的代码示例和实用技巧,帮助开发者掌握逆向工程中的关键步骤,特别是针对a_bogus参数的生成逻辑和混淆处理。

weixin_29288313的博客 406

SAP PP未清生产订单关闭物料退料、新工单发料批量处理

( werks = '1001' lgort = 'A004' lgobe = '组装-成品组装' )( werks = '1002' lgort = 'C006' lgobe = '组装-二车间' )( werks = '1002' lgort = 'C007' lgobe = '组装-二车间' )( werks = '1001' lgort = 'A007' lgobe = '组装-MS' )( werks = '1001' lgort = 'A008' lgobe = '组装-GW' )

dingqing86的专栏 1192

在DataGridView加入CheckBox列

项目中需要一个这样的DataGridView(字段不同):1. DataSource绑定到一个DataTable上,这里假设DataTable有两个字段:ID, Name。2. 第一列为CheckBox,让用户来选,提交的时候就提交CheckBox选中的。    我开始的时候是先在DataGridView初始化的时候就加入一列CheckBox,然后再把DataSource赋为那个Dat

Rocketman的专栏 6296

7.29华为OD机试真题 新系统 - 能量对撞 (Java/Py/C/C++/Js/Go)

7.29华为OD机试真题 新系统 - 能量对撞 (Java/Py/C/C++/Js/Go)

算法大师! 1314

C# 输入完以后立即更新缓冲区(DataGridView CheckBox列checked变化后就触发CellValueChanged事件)

在DataGridView添加如下的事件( CurrentCellDirtyStateChanged) private void dataGridView2_CurrentCellDirtyStateChanged(object sender, EventArgs e)        {            //添加下面的代码后,你用鼠标点击CheckBox列的check变化后触发C

Pipi0714的专栏 5825

深入YOLOv8内部核心:用RepNCSPELAN4深度重构主干网络,即插即用的高效涨点方案

本文提出了一种改进YOLOv8目标检测模型的方法,通过在YOLOv8中引入RepNCSPELAN模块来提高检测性能。该模块融合了RepVGG重参数化思想与CSP-ELAN结构,在保持推理速度的同时增强特征表达能力。实验结果表明,改进后的RepNCSPELAN-YOLOv8相比原模型在多项指标上均有提升:准确率从0.84提高到0.86,召回率从0.72提升至0.81,mAP50和mAP50-95也分别提高了0.06和0.04。文章详细介绍了模块设计原理和移植步骤,包括配置文件创建、代码修改等关键环节,为YOL

FJN110的博客 185

【Android Performance】Android CPU调度模式详解:从performance到schedutil的Governor调优指南

本文系统讲解Android/Linux系统中的CPU频率调节策略(Governor),涵盖六大调度模式的底层工作原理:performance(性能优先)、powersave(省电优先)、conservative(保守调频)、ondemand(按需调频)、userspace(手动控制)以及schedutil(调度器驱动)。文中深入拆解每种Governor的调频决策逻辑、上升/下降曲线的差异、适用场景与选型建议,并配以实操命令演示如何查看可用Governor列表、动态切换调度模式以及多Cluster架构下的统一

weixin_44081096的博客 430

C# DataGridView表格增删改及效率提升,添加CheckBox组件,全选反选

呕心沥血原创,转载请注明出处! 目录 1.设置DataGridView表格行首为序号索引, 2.设置DataGridView第一列值为CheckBox类型, 3.DataGridView表格列绑定对象属性 4.DataGridView绑定List集合,首先初始化BindingList数据,如果你的集合是List,必须要将List转成BindingList,界面才能根据你集合的变化...

PLA12147111的博客 3756

解决MiGPT部署痛点:小米账号异地登录安全验证的解决方案

为让小米音箱更智能🤖,部署MiGPT时遇到小米账号异地登录验证问题,手动验证后仍无法解决。本文分享亲测有效的简化方案✨:通过浏览器F12获取passToken📝,手动创建mi.json配置文件并挂载到Docker容器,无需本地运行MiGPT,直接绕过异地验证,附完整操作步骤和问题排查指南。

XiaoqiangClub的博客 1434

datagrip链接clickhouse教程

添加ClickHouse驱动:最好不用自己下载的驱动,会出现一些错误以及连接失败,用在线下载的。

CHANGSHENG888x的博客 1391

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

DataGrip连接ClickHouse时区显示异常

文章目录版本信息问题解决方法 版本信息 DataGrip 2021.2.4 ClickHouseDriver 0.3.1 问题 Linux服务器端正确设置ClickHouse时区,查询也正常 DataGrip客户端查询却显示小了8个小时,可以定位是时区问题 解决方法 修改ClickHouse连接属性 -> Advanced。 use_server_time_zone 设置为 false use_time_zone 设置为 UTC,一定要设置为大写。 选择Apply,然后重新查询恢复正常。 ..

sinat_27418407的博客 1600

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

GridView单击行任何位置选中checkbox/取消

<br />function check(opt)<br />{<br />    var chk = window.document.getElementById(opt);<br />    if(chk.checked == true)<br />    {<br />        chk.checked = false;<br />    }<br />    else<br />    {<br />        chk.checked = true;<br />    }<br />}<br

home9012的专栏 854

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

DataGrid模板列的CheckBox事件定义方法

    DataGrid的模板列中使用CheckBox是很常见的现象,而每个CheckBox怎么触发事件,又如何得到发生事件的当前行数据,是本文描述的中心。它并没有什么技术含量,但不了解的话,会让你在这里浪费一些时间。举个简单的例子:你需要在点击DataGrid上的CheckBox后,在将当前行数据复制到另一个表格中。    ok,言归正传。    假设当前有这样一个DataGird:

攀升·Lislie 1876

c1FlexGrid的属性及方法

属性/方法名称 功能 示例语法 AddItem() 增加一行 O.A String[, RowIndex] Aggregate 返回集合合计(总数,平均,等等) O.A = (A,Row1,Col1,Row2,Col2) Align 对象在窗体上的显示位置 O.A = 0;1;2;3;4 AllowBigSelection 设定列头是否整行或整列选择 O.A = Tr...

ika桑的小笔记 8108

Winform列表展示的Demo

Winform列表展示的Demo

weixin_51392510的博客 430

[C1] 仿 Excel 实现(C1FlexGrid)

一 分析阶段 根据 Excel 表格区域的划分,如下图,基本上以4行*3列的框架搭建; 第一行为列头区域 ==> C1FlexGrid.ColumnHeaders 第二行为单元格区域 ==> C1FlexGrid.Cells 第三行为列尾区域 ==> C1FlexGrid.ColumnFooters 第四行为横向滚动条区域,在 Excel ...

weixin_30916125的博客 270

Winform中DatagridView 表头实现一个加上一个checkBox,实现全选选项功能

Winform中DatagridView 表头实现一个加上一个checkBox,实现全选选项功能

munangs的博客 1万+

C# dataGridView 列的勾选框改变事件

dataGridView 增加一列 DataGridViewCheckBoxColumn。dataGridView增加两个事件。

Jessyzhao_0的博客 2103

C# DataGridView中ComboBox下拉更改事件

对于C#的软件工程师来说使用DataGridView控件的频率是不低的,在DataGridView中加入按钮、下拉菜单也是比较频繁,那么如何对加入的按钮、下拉菜单添加事件和事件处理呢? 下面的Demo是针对下拉菜单如何添加和处理事件   该Demo实现下拉切换班级,实现班主任和名次自动刷新功能,班级下拉选择后触发事件。 主界面 直接编辑列完成的四列,第二列的班级为DataGr

SunCherryDream的专栏 1万+

在DataGridView中增加一个选择框checkbox

这样代码加载完成后显示的界面效果就为图1中所示;

qq_43183309的博客 2380

DataGrip连接clickhouse

添加ClickHouse驱动:最好不用自己下载的驱动,会出现一些错误以及连接失败,用在线下载的。

qq_37247026的博客 3685
上一篇: .net开发趣题两则-联想优秀程序员与专业程序员(downmoon).net
下一篇: 获取远程网页的内容之二(downmoon原创)
downmoon
博客等级 码龄24年 1676粉丝 494原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值