0

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

<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 语句给出了一个脚本错误,指出对象为空。

4

2 回答 2

3

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

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

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

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

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

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

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

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

于 2012-09-14T05:08:05.447 回答
0

尝试做这样的事情:

$(function(){
    $("#ddcStatus").click(function () {
        //$('#ddcStatus').attr("Title",'Items Selected');
        //document.getElementById("ddcStatus").Title = 'Items Selected';
    });
})
于 2012-09-14T04:56:50.643 回答