【问题标题】:Populate dropdown list dynamically using jquery使用jquery动态填充下拉列表
【发布时间】:2015-02-25 06:59:04
【问题描述】:

我使用的是 SharePoint 2010,jquery-1.9.0.min.js,需要根据用户的 AD 组填充 asp 下拉列表。我已经有了获取 AD 组并获取需要进入下拉列表的值的代码。下拉列表将包含 2 到 4 个项目(文本和值)的任意组合,然后所选项目应流入同一网页上的 Web 部件。我是 SharePoint/jquery 的新手,不确定如何动态设置下拉列表选项。我设置了带有虚假文本和值的下拉列表,需要用每个用户的有效值替换它。如果可能的话,我想使用 jquery。如果有另一种更简单的方法 - 请告诉我。如果需要,我需要知道如何添加 1 或 2 个附加选项。

<asp:DropDownList runat="server" id="DropDownList1" AutoPostBack="True">
                            <asp:ListItem value="06">Fac1</asp:ListItem>
                            <asp:ListItem value ="07">Fac2</asp:ListItem>
                        </asp:DropDownList>

【问题讨论】:

  • 你试过什么?在网络搜索中找到大量结果确实应该不难
  • 我不知道引用下拉列表选项的命令的确切语法。我发现的大多数代码只告诉我如何选择从现有下拉列表中选择的项目,而不是填充列表。尝试了几种不同的方法。 $("#DropDownList1 option:text=" + Somename +"").prop("selected", "selected"); $("input[id$=DropDownList1]").text("Somename"); $("#Dropdownlist1").val("thevalue");

标签: javascript jquery asp.net sharepoint


【解决方案1】:

这是一个很好的例子: http://www.joe-stevens.com/2010/02/23/populate-a-select-dropdown-list-using-jquery-and-ajax/

...以及博客中的代码示例。在您的情况下,应使用 DropDownList 控件的 .ClientID 属性填充“#ddlGender”,您需要调整调用和处理以适应您的具体情况:

$().ready(function() {
$.ajax({
    type: "POST",
    url: "Default.aspx/GetGenders",
    data: "{}",
    contentType: "application/json; charset=utf-8",
    dataType: "json",
        success: function(msg) {
            $("#ddlGender").get(0).options.length = 0;
            $("#ddlGender").get(0).options[0] = new Option("Select gender", "-1");   

            $.each(msg.d, function(index, item) {
                $("#ddlGender").get(0).options[$("#ddlGender").get(0).options.length] 
                      = new Option(item.Display, item.Value);
            });
        },
        error: function() {
            alert("Failed to load genders");
        }
    });
});   

【讨论】:

  • 当然,我用谷歌搜索了下拉列表的人口。当任务本身很简单时,解决方案似乎很复杂。我希望找到可以告诉我如何使用 jquery 在加载时更新下拉列表项(选项)的代码。在上面的示例中,它指定了确切的 url,但对于我的情况,我在 url 中传递参数,并且每个用户在 url 中可能有一个唯一的参数。我也不熟悉“json”。如果您知道如何正确引用下拉列表,它似乎应该很容易。所有编码都在 SharePoint Designer 中使用随附的 Web 部件完成。
  • 我想我想出了命令。还将下拉菜单从 asp 切换到 html 下拉列表 (#FacilList)。现在面临新问题 - 第一个 url 参数只截断第一个字符(值),而下一个 url 参数包含整个单词。试图重命名 url 中的参数 - 没有区别。是什么原因造成的? if (document.URL.indexOf("Facnam1") != -1) { fname = $.urlParam('Facnam1'); var str=""; $("#FacilList").append(str); }
  • 我也解决了 url 问题 - 找到了不同的代码来获取参数。新问题 - 每次更新任何过滤器值并丢失用户刚刚选择的值时都会重新加载下拉列表。如何加载下拉列表一次或至少确保所选值保持不变?试图将其存储在一个变量中,但每次重新加载都会将其清除。另一个问题 - 如何从 SharePoint 过滤器中删除值?试图像这样分配它 $("input[id$='SpListFilterWebPart']").text('');但它不工作
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-18
  • 2023-04-03
相关资源
最近更新 更多