//后台处理代码,通过设置DropDownList的onchange事件,其处理响应函数为客户端JQuery的onLinkTypeChange()函数:
   protected void ListView1_ItemCreated(object sender, ListViewItemEventArgs e)
        {
            if (e.Item.ItemType == ListViewItemType.DataItem)
            {
                DataRowView rowView = (DataRowView)e.Item.DataItem;
                DropDownList ddlLinkType = (DropDownList)e.Item.FindControl("ddlLinkType");
                if (rowView != null && ddlLinkType != null)
                {
                    var linkRow = (ASP.Net高级.综合应用案例.DAL.lvds1.T_LinksRow)rowView.Row;
                    ddlLinkType.SelectedValue = linkRow.LinkType;
                }
            }
            if (e.Item.ItemType == ListViewItemType.InsertItem)
            {
                DropDownList ddlLinkType = (DropDownList)e.Item.FindControl("ddlLinkType");
                TextBox LogoURLTextBox = (TextBox)e.Item.FindControl("LogoURLTextBox");
                if (ddlLinkType != null && LogoURLTextBox != null)
                {
                    ddlLinkType.Attributes["onchange"] = "onLinkTypeChange(this,'" + LogoURLTextBox.ClientID + "')";//通过参数,将当前处理对象和LogoURLTextBox的ClientID一块传入
                    if (ddlLinkType.SelectedValue == "Text")
                    {
                        LogoURLTextBox.Style["display"] = "none";
                    }
                }            }
        }//JQuery处理函数onLinkTypeChange():
<script src="../script/jquery-1.4.2.min.js" type="text/javascript"></script>
    <script type ="text/javascript">        function onLinkTypeChange(src,logoTextId) {
            if ($(src).val() == "Text") {
                $("#"+logoTextId).hide();
                }
            else {
                     $("#"+logoTextId).show();
                }
             }
        </script>
问题是传入的ClientID与浏览器客户端渲染的html代码的Id不一致。!!!!请问该如何解决?看过人家解决的办法。在DataBound等事件其ID能正确渲染,但问题是这些事件又不进行ListViewItemType.InsertItem处理!!能有其他啥办法解决嘛???

解决方案 »

  1.   

    右键,查看源代码,不就可以看到生成的ID了吗firebug 更方便
      

  2.   

    可以查看ID,但在模板中ID每次渲染到客户端都不一样的!只能通过ClientID取得!
      

  3.   

    我也遇到了相同的问题,求解?  
       楼主的这段代码与杨中科老师.NET视频教程第13季将ListView中处理DropDownList的案例好像啊~~
      

  4.   

    <asp:TextBox ID="LogoURLTextBox" runat="server" i="i">
    ddlLinkType.Attributes["onchange"] = "onLinkTypeChange(this,'text[i]')";