1:前端
导入:
<script src="~/Content/js/select2/select2.min.js"></script>
<link href="~/Content/js/select2/select2.min.css" rel="stylesheet" />
//下拉绑定数据
$(function () {
//获取下拉框绑定的值$("#cName").bindSelect({
url: "/AppMarket/CommonFunction/GetTreeSelectCodes"
});
i = $("#newsId").val();
$('#cName').val(i).select2();
$(document).ready(function () {
$('#cName').select2();
});
})
2:后台 数据获取
public ActionResult GetTreeSelectCodes(string name)
{
List<TreeSelectModel> list = DataLogic.GetCNameString();
var treeList = new List<TreeSelectModel>();
for (int i = 0; i < list.Count; i++)
{
TreeSelectModel treeModel = new TreeSelectModel();
treeModel.text = list[i].text;
treeModel.parentId = "0";
treeList.Add(treeModel);
}
return Content(treeList.TreeSelectJson());
}
}
3:实体类
public class TreeSelectModel
{
public string id { get; set; }
public string text { get; set; }
public string parentId { get; set; }
public object data { get; set; }
}
4:方法:
1)GetCNameString
public static List<TreeSelectModel> GetCNameString()
{
int _dataCount = 0;
List<TreeSelectModel> treeSelectList=new List<TreeSelectModel>();
if (_apkList == null)
{
_apkList = HtmlDisplay.ApkList_Test(ref _dataCount);
//_developerList = HtmlDisplay.DeveloperList_Test(ref _dataCount);
}
JavaScriptSerializer jss = new JavaScriptSerializer();
jss.MaxJsonLength = 5242880 * 10;//
string result = jss.Serialize(_apkList);
result=result.Replace(":", "").Replace("\"", "").Replace("{", "").Replace("}", "");
List<string> list = result.Split(',').ToList();
for (int i = 0; i < list.Count;i++ )
{
TreeSelectModel treeList = new TreeSelectModel();
treeList.text = list[i];
treeSelectList.Add(treeList);
}
return treeSelectList;
}
2)TreeSelectJson
public static class TreeSelect
{
public static string TreeSelectJson(this List<TreeSelectModel> data)
{
StringBuilder sb = new StringBuilder();
sb.Append("[");
sb.Append(TreeSelectJson(data, "0", ""));
sb.Append("]");
return sb.ToString();
}
private static string TreeSelectJson(List<TreeSelectModel> data, string parentId, string blank)
{
StringBuilder sb = new StringBuilder();
var ChildNodeList = data.FindAll(t => t.parentId == parentId);
var tabline = "";
if (parentId != "0")
{
tabline = " ";
}
if (ChildNodeList.Count > 0)
{
tabline = tabline + blank;
}
foreach (TreeSelectModel entity in ChildNodeList)
{
entity.text = tabline + entity.text;
string strJson = entity.ToJson();
sb.Append(strJson);
sb.Append(TreeSelectJson(data, entity.id, tabline));
}
return sb.ToString().Replace("}{", "},{");
}
}