私は2つのASPドロップダウンリストを持っています..2つのドロップダウンリストで選択された値に基づいて、Jquery Sortable接続リストを実装した2つの順序付けられていないリストを動的に生成します..最初のリストにはいくつかのデフォルト値が含まれています..ドラッグアンドドロップする必要があります2番目のリストに必要な値...重複するエントリを追加するのを防ぐ必要があります..
以下にコードを貼り付けています...親切に確認して解決策を提供してください:
これは、2 つのドロップダウン リストの 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 リストは独立しているため、その値は分離コード (pageload) で次のようにロードされます。
HtmlGenericControl li;
JavaScriptSerializer objJSSerializer = new JavaScriptSerializer();
foreach (FetchUserGroup_Result objectItem in Allusergroup)
{
li = new HtmlGenericControl("li");
li.ID = objectItem.group_id.ToString();
li.Attributes.Add("class", "ui-state-default");
li.InnerText = objectItem.group_name;
sortable1.Controls.Add(li);
}
2 番目の 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;
}
これで値の重複を避ける方法...助けてください..
前もって感謝します..