于昨天晚上看到视频做到这个例子,但是发现始终有错误,在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>

最新文章

  1. VMware下虚拟机的转移
  2. java的前台与后台
  3. HTML锁定Table中某一列
  4. SVN学习之svn命令行下的基本操作
  5. 基于catalog 创建RMAN存储脚本
  6. 支持苹果IPV6 ONLY 的socket 修改方法
  7. 201521123020《java程序设计》第1周学习总结
  8. 【编程技巧】NSDate,NSDateFormatter,NSTimeInterval
  9. PAT-L2-007-gplt真题
  10. Yearning 介绍(SQL审核平台)
  11. (无)webservice执行过程深入理解
  12. 嵌套表用法详解(PLSQL)
  13. rnnlib依赖ubuntu环境配置
  14. Spring boot配置多个Redis数据源操作实例
  15. 查找被占用的端口的服务并kill掉
  16. 题目1002:Grading(题目背景基于高考打分的简单判断)
  17. NY891 区间选点 找点
  18. SpringMVC--拦截器的使用
  19. [SAP]编辑表
  20. 转载:monkeyrunner之eclipse中运行monkeyrunner脚本之环境搭建(四)

热门文章

  1. RPC框架与分布式服务框架的区别
  2. Listener 监听Session内的对象
  3. 【Python】 linecache模块读取文件
  4. 用source函数代替繁冗的R语言打包过程
  5. [maven] settings 文件 本地maven仓库
  6. iOS 基础入门--Bull&#39; Eye 小游戏 
  7. hashMap put方法 第二行代码
  8. MongoDB mongod.exe或mongo.exe双击一闪就关闭
  9. 安卓横竖屏切换时activity的生命周期
  10. windows下mysql密码忘了怎么办?【转】