zoukankan      html  css  js  c++  java
  • 完美解决ListView中事件ItemCreated中使用ClientID导致插入数据失败

    于昨天晚上看到视频做到这个例子,但是发现始终有错误,在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>
  • 相关阅读:
    2016多校赛1 A 期望 B SG博弈,状压 D 倍增,二分
    POWOJ 1739: 魔术球问题 DAG最小路径覆盖转最大流
    Codeforces 743D 树形dp
    线性规划与网络流24题 索引
    WangEditor富文本编辑器的简单使用,并将文本数据发往后台
    SSRF
    关于Blind XXE
    blind xxe攻击
    linux awk命令详解
    kali
  • 原文地址:https://www.cnblogs.com/fanyf/p/3557761.html
Copyright © 2011-2022 走看看