抓取GridView "编辑"模式下,TextBox修改后的数值

对应书本「上集」第十章(ASP.NET专题实务 / 松岗出版)

[C#] ADO.NET #3 (GridView + SqlDataSource)完全手写、后置程序代码,兼论 SqlDataSource与UpdateParameter/DeleteParameter的用法

[C#] ADO.NET #3-1 (GridView + DataReader + SqlCommand)完全手写、后置程序代码

这是昨天上课的补充讲义:

================================================================

请写在GridView的 RowUpdating事件里面

第一,转成样版(Template),透过 .FindControl()方法处理

GridView1.Rows[e.RowIndex].FindControl("子控件ID")

.FindControl()的范例太多了,因为太好用、太常用,请看 http://www.dotblogs.com.tw/mis2000lab/Tags/findcontrol/default.aspx

第二,转成样版,请用 .Controls处理

GridView1.Rows[e.RowIndex].Cells[数字].Controls[0]

这方法比较不好操作,可以参阅以前的文章与范例:

上集 Ch.10 -- .Controls() / .Controls[]的补充范例 #1

上集 Ch.10 -- .Controls() / .Controls[]的补充范例 #2 -- 转成样版(Template)以后

第三,透过 RowUpdating事件里面的参数e

e.NewValues["域名"] -- 修改以后的「新资料」

另外有一个 e.OldValues["域名"]  其实就是「开放式并行存取」里面提到的观念 -- 修改以前的「旧数据」

[图解] SqlDataSource 开放式并行存取 (Optimistic Concurrency),以GridView为例

第四,传统的Request也能抓到。

首先,您必须透过 UniqueID属性抓到HTML网页(程序执行后的成果画面)上的控件编号(独一无二的编号)

[习题] Web控件 -- UniqueID属性 与 ID属性两者的差异(上集Ch. 3 补充范例)

有了这个编号,就能透过 Request来撷取,例如:

    protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
    {   
        //----修改、更新
        TextBox my_test_time = (TextBox)GridView1.Rows[e.RowIndex].Cells[2].Controls[0];   // 抓到「Text控件」。
 
        //---- 您也可以透过下列作法,取得GridView "编辑模式"下的TextBox,修改 "之后"的数值。
        Response.Write("第1个TextBox的 UniqueID" + my_test_time.UniqueID + "<hr>");
 
        Response.Write(Request[my_test_time.UniqueID] + "<br>");
 
        Response.End();
        // 后续省略......
    }

抓取GridView "编辑"模式下,TextBox修改后的数值的更多相关文章

  1. 巨坑:jqgrid竟然取不到编辑模式下input的值

    今天遇到最奇葩的问题,竟然取不到input的值,感觉世界观都颠覆了.后来一搜资料,又是jqgrid框架搞的鬼,真搞不明白,开发框架就好好开发框架,留这么多坑有意思吗? jqgrid编辑模式下不要调用g ...

  2. 工作记录--WPF自定义控件,实现一个可设置编辑模式的TextBox

    原文:工作记录--WPF自定义控件,实现一个可设置编辑模式的TextBox 1. 背景 因为最近在使用wpf开发桌面端应用,在查看页面需要把TextBox和Combox等控件设置为只读的.原本是个很简 ...

  3. OSG立体模式下动态修改相机远近裁剪面的实现

    1. 非立体模式下动态修改相机远近裁剪面 class GLB_DLLCLASS_EXPORT CGlbGlobeClipHandler : public osg::NodeCallback    { ...

  4. vim中,在编辑模式下如何快速移动光标

    编辑 ~/.vimrc 配置文件,加入如下行,编辑模式下自定义的快捷键 inoremap <C-o> <Esc>o  inoremap <C-l> <Righ ...

  5. HTML编辑模式下制作表格

    前面有朋友问如何做图文并茂的音乐帖子,的确音乐能以表格式做出来,更能让人过目不忘,何况帖子制作过程本身就是创作,包含了制作人对音乐的理解和爱好.以下简单介绍用代码HTML制作表格,希望对大家有所帮助. ...

  6. ubunut在系统恢复模式下无法修改root密码的分析和解决

    前些日子本猫的ubuntu 14.10貌似出了点问题,想修改下root密码,但是无奈原系统有错正常情况下无法修改啊,这是逼我重装的节奏吗? 在ubuntu开机后立即按住left_shift不放,调出g ...

  7. windows中抓取hash小结(下)

    书接上回,windows中抓取hash小结(上) 指路链接 https://www.cnblogs.com/lcxblogs/p/13957899.html 继续 0x03 从ntds.dit中抓取 ...

  8. 解决Ubuntu中vi命令的编辑模式下不能正常使用方向键和退格键的问题

    在Ubuntu中,进入vi命令的编辑模式,发现按方向键不能移动光标,而是会输出ABCD,以及退格键也不能正常删除字符.这是由于Ubuntu预装的是vim-tiny,而我们需要使用vim-full,解决 ...

  9. Linux下IP修改后重启服务器 oralce 出错(监听无法启动)

    针对linux下修改IP导致的Oracle不能启动问题的解决 主要修改/etc/hosts配置文件.修改前配置: # Do not remove the following line, or vari ...

随机推荐

  1. 《精通Spring4.X企业应用开发实战》读后感第四章(资源访问)

    package com.smart.resource; import org.springframework.core.io.ClassPathResource; import org.springf ...

  2. linux中syslog自定义存储路径的方法

    方法一: 1. su  //切换到root用户下2. cp /etc/sysconfig/rsyslog /etc/sysconfig/rsyslogbak //备份vim /etc/sysconfi ...

  3. jquery动态创建标签

    $("<div />")[0] 其中 $("<div/>")  相当于 $("<div></div>& ...

  4. 如何升级一个JavaWeb应用

    准备db变更 准备整个war包或变更的文件 上传文件至云盘​(通常直接上传文件较慢,建议先传到云盘,然后下载) 从云盘下载 执行db变更 解压war到指定目录或替换变更的文件 修改设计IP地址的配置文 ...

  5. WPF之触发器

    简单触发器<Window x:Class="WpfApp.Window1" xmlns="http://schemas.microsoft.com/winfx/20 ...

  6. ncnn添加自己的layer

    ncnn 是tencent公司开源的神经网络前向计算框架,github地址: https://github.com/Tencent/ncnn 通过简单的步骤可以添加自己的layer, 比如用位运算实现 ...

  7. 数据库路由中间件MyCat - 使用篇(3)上篇

    此文已由作者张镐薪授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 全局序列号 数据切分后,原有的关系数据库中的主键约束在分布式条件下将无法使用,因此需要引入外部机制保证数据唯 ...

  8. Golang : cobra 包简介

    Cobra 是一个 Golang 包,它提供了简单的接口来创建命令行程序.同时,Cobra 也是一个应用程序,用来生成应用框架,从而开发以 Cobra 为基础的应用.本文的演示环境为 ubuntu 1 ...

  9. 编写BeanFactory

    /** * 一个创建Bean对象的工厂 * * Bean:在计算机英语中,有可重用组件的含义. * JavaBean:用java语言编写的可重用组件. * javabean > 实体类 * * ...

  10. 51nod1255【贪心-栈的应用】

    思路: 大体可以看到:大的越后面越好,但是首先要保证如果他对于一个比他小的字符后面存在他. 主要操作就是利用栈,每次对栈里的元素询问是否比他大,且他的后面还存在. #include<bits/s ...