【问题标题】:JQuery set value to custom made server controlJQuery 将值设置为自定义服务器控件
【发布时间】:2026-02-17 11:10:01
【问题描述】:

我们有一个定制的服务器控件,其中定义了几个属性。

<cc1:DropdownCheck ID="ddcStatus"  runat="server" CssClass="ddlchklst" JQueryURL="~/Scripts/jquery.js"
                    Title="Select Status(es)" OpenOnStart="false" divHeight="17px" 
                ImageURL="Images/DropDown.PNG" >
            </cc1:DropdownCheck>

如何在服务器控件的单击事件上设置 Title 属性的值。我当前的 jquery fn 看起来像这样...

$("#ddcStatus").click(function () {
            //$('#ddcStatus').attr("Title",'Items Selected');
            //document.getElementById("ddcStatus").Title = 'Items Selected';
        });

这两种说法都不起作用。 getElementById 语句给出了一个脚本错误,说 object null。

【问题讨论】:

  • 这个自定义控件渲染的 html 输出是什么?这个title属性是显示在div还是span中的自定义属性?发布呈现的 html。
  • 检查元素在浏览器中的呈现方式。代码必须基于它编写
  • 在我根据呈现的 HTML 重新编写查询后,它起作用了。标题显示为 div,所以我必须阅读 div 的 text 属性!谢谢 Ritik 和 Sushanth

标签: c# javascript jquery asp.net jquery-ui


【解决方案1】:

问题出在您的选择器中 “#ddcStatus”用于选择 id 为 ddcStatus 的元素,但在 clint 端不一样。 你会看到类似“abc_xzy_ddcStatus”的东西

在客户端加载页面时,ID 会发生变化。所以你有两个选择来解决它

  1. 在浏览器中,通过选择查看源代码或通过检查元素转到源代码并找到 源中的新 ID 并在 jQuery 中使用该 ID (我不推荐这种方式)

  2. 使用称为动态选择器的服务器 ID 并自行转换为客户端 ID

$('DropdownCheck[ID$="ddcStatus"]')

您可以将其读作“在 DropdownCheck 中选择,其 id 以 ddStatus 结尾”

您的解决方案将与在客户端使用的实际控件替换 DropdownCheck 不同 以 jquery 样式开头和结尾的一些帮助

http://api.jquery.com/attribute-ends-with-selector/ http://api.jquery.com/attribute-starts-with-selector/#attributevalue

【讨论】:

    【解决方案2】:

    尝试做这样的事情:

    $(function(){
        $("#ddcStatus").click(function () {
            //$('#ddcStatus').attr("Title",'Items Selected');
            //document.getElementById("ddcStatus").Title = 'Items Selected';
        });
    })
    

    【讨论】: