Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何防止Jquery可排序连接列表中出现重复条目?_C#_Jquery_Asp.net_Drag And Drop_Jquery Ui Sortable - Fatal编程技术网

C# 如何防止Jquery可排序连接列表中出现重复条目?

C# 如何防止Jquery可排序连接列表中出现重复条目?,c#,jquery,asp.net,drag-and-drop,jquery-ui-sortable,C#,Jquery,Asp.net,Drag And Drop,Jquery Ui Sortable,我有两个asp下拉列表。。基于在两个下拉列表中选择的值,它将动态生成两个无序列表,我在其中实现了Jquery可排序连接列表。。第一个列表包含一些默认值。。我需要将所需的值拖放到第二个列表中。。。它应该防止添加重复的条目 我正在下面粘贴我的代码。。。请检查并为我提供解决方案: 这是两个dropdownlist的aspx代码: <form id="form1" runat="server"> Application <asp:DropDownList ID=

我有两个asp下拉列表。。基于在两个下拉列表中选择的值,它将动态生成两个无序列表,我在其中实现了Jquery可排序连接列表。。第一个列表包含一些默认值。。我需要将所需的值拖放到第二个列表中。。。它应该防止添加重复的条目

我正在下面粘贴我的代码。。。请检查并为我提供解决方案:

这是两个dropdownlist的aspx代码:

    <form id="form1" runat="server">

       Application <asp:DropDownList ID="ApplicationList" runat="server" AutoPostBack="true"  OnSelectedIndexChanged="FetchRoleFromApplication" >
          </asp:DropDownList>

      Role <asp:DropDownList ID="RoleName" runat="server" onchange="javascript:ShowSortable();"  >
       </asp:DropDownList>

    <ul id="sortable1" class="connectedSortable" runat="server" style="display:none">

   </ul>


   <ul id="sortable2" class="connectedSortable" style="display:none" runat="server" >

    </ul>
    </form>
第二个ul列表值由ajax调用加载,如下所示

function ShowSortable() {

    $('#sortable1').show();


    var postJSONData = JSON.stringify({ ApplicationId: $('#applnhdnname').val(), RoleName: $('#RoleName').val() });
    $.ajax({
        type: 'POST',
        data: postJSONData,
        url: 'UserManagementService.svc/GetUserGroupsForApplicationRole',

        dataType: 'json',
        async: false,
        contentType: 'application/json; charset=utf-8',

        success: function success(response) {

            $("#sortable2").append(response.d);
            $('#sortable2').show();

        },
        error: SessionExpiryHandler
    });
}   
相应的wcf服务如下所示:

[OperationContract]
        [WebInvoke(Method = "POST", ResponseFormat = WebMessageFormat.Json)]
        public string GetUserGroupsForApplicationRole(string ApplicationId, string RoleName)
        {

            User user = new User();
            JavaScriptSerializer objJSSerializer = new JavaScriptSerializer();
            List<GetUserGroupForApplicationRole_Result> usergroup;
            usergroup = user.GetUserGroupForApplicationRole(ApplicationId, RoleName);
            string sample = string.Empty;

            foreach (GetUserGroupForApplicationRole_Result objectItem in usergroup)
            {

                sample += "<li id= "+objectItem.group_id+ " class='ui-state-highlight'>";
                sample += objectItem.group_name;
                sample+="</li>";

            }


            return sample;
        }
[运营合同]
[WebInvoke(Method=“POST”,ResponseFormat=WebMessageFormat.Json)]
公共字符串GetUserGroupsForApplicationRole(字符串ApplicationId,字符串RoleName)
{
用户=新用户();
JavaScriptSerializer objJSSerializer=新的JavaScriptSerializer();
列出用户组;
usergroup=user.GetUserGroupForApplicationRole(ApplicationId,RoleName);
string sample=string.Empty;
foreach(GetUserGroupForApplicationRole\u用户组中的结果对象项)
{
sample+=“
  • ”; 样本+=objectItem.group\u名称; 样本+=“
  • ”; } 返回样品; }
    如何避免重复的价值在这个。。。请帮帮我


    提前感谢。

    您好,请按以下方式更改您的javascript:

     <script>
        function ShowSortable() {
    
            $('#sortable1').show();
    
    
            var postJSONData = JSON.stringify({ ApplicationId: $('#applnhdnname').val(), RoleName: $('#RoleName').val() });
            $.ajax({
                type: 'POST',
                data: postJSONData,
                url: 'UserManagementService.svc/GetUserGroupsForApplicationRole',
    
                dataType: 'json',
                async: false,
                contentType: 'application/json; charset=utf-8',
    
                success: function success(response) {
                    for(var i=0; i<response.d.length;i++)
                    {
    
                        var myOption = $("<option value= " + response.d[i] + "> " + response.d[i] + " </option>");
                        if ($("#sortable2").length == 0) {
                            $("#sortable2").append(myOption);
    
                        }
                        $("#sortable2> option").each(function() {
    
                            if (response.d[i] != this.value) {
                                $("#sortable2").append(myOption);
    
                            }
    
    
                        });
                    }
    
                    $('#sortable2').show();
                },
                error: SessionExpiryHandler
            });
        }
    
    </script>
    
    
    函数ShowSortable(){
    $('#sortable1').show();
    var postJSONData=JSON.stringify({ApplicationId:$('applnhdname').val(),RoleName:$('applnhdname').val()});
    $.ajax({
    键入:“POST”,
    资料来源:postJSONData,
    url:'UserManagementService.svc/GetUserGroupsForApplicationRole',
    数据类型:“json”,
    async:false,
    contentType:'application/json;charset=utf-8',
    成功:功能成功(响应){
    
    for(var i=0;iin this code$(“#sortable2>option”).each(function(){if(response.d[i]!=this.value)它检查第二个列表中的重复值是否有可能是第一个下拉列表中的重复值?否…我有两个列表..第一个列表是独立的,例如,它只包含一些5个值..第二个列表从ajax加载其值,其中将包含第一个列表中5个值中的一些值..我将从第一个列表中添加其他值这是第二个列表。如果我尝试添加ajax已经加载的相同值,它应该会阻止我。您的解决方案将我的第二个列表作为空列表…我已经在其中有一些值。我只是添加了一些内容,如我前面的评论中所述。您是如何将值从第一个列表拖动到第二个列表的?
     <script>
        function ShowSortable() {
    
            $('#sortable1').show();
    
    
            var postJSONData = JSON.stringify({ ApplicationId: $('#applnhdnname').val(), RoleName: $('#RoleName').val() });
            $.ajax({
                type: 'POST',
                data: postJSONData,
                url: 'UserManagementService.svc/GetUserGroupsForApplicationRole',
    
                dataType: 'json',
                async: false,
                contentType: 'application/json; charset=utf-8',
    
                success: function success(response) {
                    for(var i=0; i<response.d.length;i++)
                    {
    
                        var myOption = $("<option value= " + response.d[i] + "> " + response.d[i] + " </option>");
                        if ($("#sortable2").length == 0) {
                            $("#sortable2").append(myOption);
    
                        }
                        $("#sortable2> option").each(function() {
    
                            if (response.d[i] != this.value) {
                                $("#sortable2").append(myOption);
    
                            }
    
    
                        });
                    }
    
                    $('#sortable2').show();
                },
                error: SessionExpiryHandler
            });
        }
    
    </script>