0

我正在将 jQuery 多选控件动态添加到这样的页面上:

 var captionCell = new HtmlTableCell { InnerHtml = control.Caption };
 var inputCell = new HtmlTableCell();
 inputCell.Controls.Add(inputControl);
 var row = new HtmlTableRow();
 row.Cells.Add(captionCell);
 row.Cells.Add(inputCell);
 tbl.Rows.Add(row);

并像这样构建我的javascript字符串:

 StringBuilder sb = new StringBuilder();
 sb.AppendLine("<script type=\"text/javascript\">");
 sb.AppendLine("var $callback = $(\"#callback\");");
 sb.AppendLine("$(document).ready(function () {");
 sb.Append("$(\"#");
 sb.Append(multiSelectControl.ClientID);
 sb.AppendLine("\").multiselect(");
 sb.AppendLine("{");
 sb.AppendLine("show: \"fade\",");
 sb.AppendLine("hide: \"fade\",");
 sb.AppendLine("click: function (event, ui){");
 sb.AppendLine("$callback.text(ui.text + ' ' + (ui.checked ? 'checked' : 'unchecked'));");
 sb.AppendLine("},");
 sb.AppendLine("});");
 sb.AppendLine("});");
 sb.AppendLine("</script>");

然后将脚本添加到页面中,如下所示:

ScriptManager.RegisterClientScriptBlock(this.Page, Page.GetType(), "CreateControl" + inputControl.ClientID,
                            sb.ToString(), false);

但是在尝试执行此操作时出现以下错误:

Microsoft JScript 运行时错误:对象不支持此属性或方法

请各位大侠帮忙。

提前致谢。

在此处输入图像描述

4

3 回答 3

1

您需要在页面中包含 jQuery 才能使用 document.ready,您没有添加脚本标签以在页面中包含 jquery,添加脚本标签以包含 jquery。

<script type="text/javascript" src="/jQueryFolder/jquery.js"></script>
于 2012-12-06T06:21:09.473 回答
0
  var $callback = $("#callback");
 $(document).ready(function() {
    $("#ClientID").multiselect({
    show: "fade",
    hide: "fade",
    click: function(event, ui) {
        $callback.text(ui.text + ' ' + (ui.checked ? 'checked' : 'unchecked'));
    }
});
});​
于 2012-12-06T06:38:09.260 回答
0

我通过创建用户控件解决了这个问题,当我需要使用上面的脚本时,我只是加载了用户控件。

解决了所有问题并且效果很好。

于 2012-12-11T08:55:57.940 回答