于昨天晚上看到视频做到这个例子,但是发现始终有错误,在ListView的ItemCreated事件中使用了ClientID则会导致数据插入数据库失败。当点击插入按钮时,网页就像点击F5刷新一样,无任何数据插入数据库。而把ClientID删除,重新启动程序,插入数据一切正常。于今天在网上查了一下资料,发现原来这是微软的一个Bug地址如下:http://connect.microsoft.com/VisualStudio/feedback/details/328680/problem-accessing-controls-clientid-on-asp-net-listviews-itemcreated但是好像现在都没有更新,但是这里面给了几个解决方案,对与一般性的问题都可以解决了,但是对于这个问题,还是没有很好的解决,通过查资料发现在ItemCreated事件中使用ClientID属性会将客户端渲染的id号改变,所以就出现了不能插入、与更新数据,下面给出解决方法,其实方法较简单(晕,当时怎么没有想到)

 
 
protected void ListView1_ItemCreated(object sender, ListViewItemEventArgs e)
 {
 
 
            if (e.Item.ItemType == ListViewItemType.InsertItem)
            {
                DropDownList dp = (DropDownList)e.Item.FindControl("dpLinkType");
                TextBox logurl = (TextBox)e.Item.FindControl("logurl");
                if (dp != null && logurl != null)
                {
                    string myid = "findid";
                    logurl.Attributes["findID"] = myid;//通过这里为要找到的服务端控件给一个自定义的标识,注意这里还是不能使用ClientID这个属性,不然就会有错
                    dp.Attributes["onchange"] = "dpchange(this,'"+myid+"')";//传到客户端的JQuery方法中也用这个表示,然后通过属性选择器就可以找到相应的控件了
                    if (dp.SelectedValue == "Text")
                    {
                        logurl.Style["display"] = "none";
                    }
 
 
                }
  }
 
客户端代码:
<script src="../js/jquery-1.4.2.js" type="text/javascript"></script>
    <script type="text/javascript">
        function dpchange(src, dpClientid) {
            var $logo = $("input[findID=" + dpClientid + "]");//通过从服务器端传来的参数,找到相应的控件;       
            if ($(src).val() == "Text") {
                $logo.hide();                           
            }
            else {
                $logo.show();                            
            }
         }
    </script>

完美解决ListView中事件ItemCreated中使用ClientID导致插入数据失败的更多相关文章

  1. AGS中通过FeatureServer插入数据失败、插入数据在WMTS请求中无法显示以及version概念的讨论

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.背景 在多个项目中,当我方接口给其他部门人员使用时出现了插入数据失 ...

  2. 向mysql数据表中插入数据失败的原因

    1.案例代码: $sql1="insert into content(category,subject,content,username,release_date) values('{$ca ...

  3. 完美解决CTRL+空格不能切换中/英文输入法的问题

    首先任务栏上的输入法图标上点右键选择设置. 然后选择键设置,双击第一个“在不同的输入语言之间切换”先勾选“切换输入语言”下面选择左手ALT.取消右边“切换键盘布局”前的勾. 然后进入“中文(简体)输入 ...

  4. 在oracle中使用merge into实现更新和插入数据

    目录 oracle中使用merge into DUAL表解释 使用场景 用法 单表 多表 oracle中使用merge into DUAL表解释 在Oracle数据库中,dual是Oracle中的一个 ...

  5. 完美解决ListView 与 ScrollView 共存问题

    1:首先设置ListView的高度,在setAdapter之后调用此方法. public static void setListViewHeightBasedOnChildren(ListView l ...

  6. Socket中BufferedReader.readLine()的阻塞特性导致的数据无法多次发送的问题

    https://blog.csdn.net/shenpibaipao/article/details/70236657

  7. libcurl使用easy模式阻塞卡死等问题的完美解决

    引言: 由于要在android手机测进行DM开发, 其中最重要的就是FUMO和SCOMO下载, 下载使用的是linux开源库libcurl. 于是就把libcurl的使用研究了一遍, 有些心得, 并解 ...

  8. WebGIS项目中利用mysql控制点库进行千万条数据坐标转换时的分表分区优化方案

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1. 背景 项目中有1000万条历史案卷,为某地方坐标系数据,我们的真实 ...

  9. sql 中的Bulk和C# 中的SqlBulkCopy批量插入数据 ( 回顾 and 粗谈 )

    通常,我们会对于一个文本文件数据导入到数据库中,不多说,上代码. 首先,表结构如下.   其次,在我当前D盘中有个文本文件名为2.txt的文件. 在数据库中,可以这样通过一句代码插入. Bulk in ...

随机推荐

  1. Eclipse源代码分析

    Eclipse源代码分析 一.概述走入Eclipse的内核,看看它到底是怎么工作的? 1.Eclipse源代码 下载地址:http://download.eclipse.org/eclipse/dow ...

  2. JS学习 - offset家族(一)

    JS学习 - offset家族(一) 先来张图开开胃 offsetWidth offetHeight 得到对象的宽度和高度(自己的,与他人无关) offsetWidth = width + borde ...

  3. 给data设置数据

    console.log(JSON.stringify(that.data.navigator[0].content) + "--____+" + JSON.stringify(th ...

  4. node学习笔记9——cookie,session相关操作

    下面讲的都是基Express及相关的包.所以在实践本篇文章之前,通过npm安装好Express, cookie-parser, cookie-session这三个安装包. 先简单说一下,如何用Expr ...

  5. Fedora归档管理器支持Rar、7Z

    最新文章:Virson's Blog 方法: 在Fedora下如何安装 RAR 压缩/解压缩程序 (RAR)? RAR格式压缩包解压 命令:yum install unrar 7z格式压缩包解压 yu ...

  6. e740. 向标签中加入一个图标

    This example creates a JLabel component with an icon. // Fetch icon Icon icon = new ImageIcon(" ...

  7. IntelliJ IDEA 2017 汉化包及教程

    一.准备 官网下载IntelliJ IDEA 2017 并安装好 下载汉化包 (百度云链接:http://pan.baidu.com/s/1slS9ZMP 密码:gp79) 二.汉化 此处有两种方法, ...

  8. [poj 1947] Rebuilding Roads 树形DP

    Rebuilding Roads Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 10653 Accepted: 4884 Des ...

  9. Error: package or namespace load failed for ‘rJava’:

    https://stackoverflow.com/questions/30738974/rjava-load-error-in-rstudio-r-after-upgrading-to-osx-yo ...

  10. Linux free命令使用及解析

    1. 命令格式 free [参数] 2. 命令功能 free 命令显示系统使用和空闲的内存情况,包括物理内存.交互区内存(swap)和内核缓冲区内存.共享内存将被忽略 3. 命令参数 -b 以Byte ...