首页 新闻 会员 周边

关于dropdownlist 联动问题。

0
悬赏园豆:5 [待解决问题]
SelectList IUploadRepository.AlbumList()
        {
            var List = new SelectList(new List<SelectListItem>());
            return List;
        }

        SelectList IUploadRepository.AlbumList(string albumtype)
        {
            if (!String.IsNullOrWhiteSpace(albumtype))
            {
                var item = from x in db.Albums where x.AlbumType == albumtype && x.Account.AlbumAccount == HttpContext.Current.User.Identity.Name select x.AlbumName;
                var List = new SelectList(item);
                return List;
            }
            else
            {
                var List = new SelectList(new List<SelectListItem>());
                return List;
            }
        }

        List<String> IUploadRepository.JsonAlbumList(string albumtype)
        {
            if (!String.IsNullOrWhiteSpace(albumtype))
            {
                var List = from x in db.Albums where x.AlbumType == albumtype && x.Account.AlbumAccount == HttpContext.Current.User.Identity.Name select x.AlbumName;
                return List.ToList();
            }
            else
            {
                return new List<String>();
            }
        }

        SelectList IUploadRepository.TypeList()
        {
            var item = from x in db.Albums select x.AlbumType;
            var List = new SelectList(item.Distinct());
            return List;
        }



public ActionResult ImageUpLoad()
        {
            ViewBag.AlbumType = _UploadRepository.TypeList();
            ViewBag.AlbumName = _UploadRepository.AlbumList();
            return View();
        }


public JsonResult GetAlbum(string albumtype)
        {
            return Json(_UploadRepository.JsonAlbumList(albumtype), JsonRequestBehavior.AllowGet);
        }

 

$(function () {
    var typevalue = $("#Album_AlbumType").val();
    if (typevalue == "") {
        $("#Album").hide(); //隐藏
    }

    $("#Album_AlbumType").change(function () {
        var selectedvalue = $("#Album_AlbumType").val();
        var TheUrl = "/Upload/GetAlbum?albumtype=" + escape(selectedvalue); //參數值含有中文,利用escape()進行轉碼

        $.getJSON(TheUrl, null, function (data) {
            $("#Album_AlbumName").empty(); //清空下拉列表選項

            if (selectedvalue == "") {
                $("#Album").hide(); //隐藏
            }
            else {
                $("#Album").show(); //顯示
            }

            $("#Album_AlbumName").append(
                $("<option></option>", { value: "", text: "请选择" })
        );
            $.each(data, function (i, item) {
                $("#Album_AlbumName").append($("<option></option>").val(item).html(item))
            });
        });
    });
});


功能上是正常的,问题运行后,新添加一个Album记录(成功保存到数据库),但dropdownlist没有即时出现新增加的记录,需要关闭浏览器(停止调试),再重新运行,刚才添加的记录才出现。请教各位高手,这是哪里出问题的,为什么dropdownlist不会即时显示新增加的记录

时光刺客的主页 时光刺客 | 初学一级 | 园豆:60
提问于:2013-11-28 10:48
< >
分享
所有回答(2)
0

即使更新就得用AJAX异步传输。不然肯定要重新加载也面才会有显示最新的数据

大芝麻 | 园豆:4 (初学一级) | 2013-11-28 11:16

用AJAX就可以?我手工刷新(F5)整个页面也没用显示!必须要停止调试,关闭浏览器再重新运行

支持(0) 反对(0) 时光刺客 | 园豆:60 (初学一级) | 2013-11-28 12:29

@时光刺客: 调试的时候函数执行完毕并返回视图了吗?return View();

在不用异步传输又是在调试状态下,专辑创建完毕保存到数据库后,函数体没执行完毕,没返回视图,数据是没有刷新到页面的。

支持(0) 反对(0) 大芝麻 | 园豆:4 (初学一级) | 2013-11-28 12:37

@时光刺客: 你附上的代码没看到创建专辑的那个函数啊,贴出来看看嘛

AlbumList()函数获得列表后没返回视图,不是很明白楼主的意思

支持(0) 反对(0) 大芝麻 | 园豆:4 (初学一级) | 2013-11-28 12:44

@时光刺客:我做过类似的创建图片专辑然后用户上传图片的项目。

流程是这样的

 

public ActionResult CreateAblum(PictureModels Models)
{
       SaveDb();
       return RedirectToAction("MyPicAblums", "Picture");
}

        public ActionResult MyPicAblums()
        {
            string[] Result = ExcuteSql()
            ViewBag.Ablums = new SelectList(x);
            return View();
        }
然后在MyPicAblums页面
 @Html.DropDownListFor(m => m.PictureAblum, ViewBag.Ablums as SelectList)
支持(0) 反对(0) 大芝麻 | 园豆:4 (初学一级) | 2013-11-28 13:02

@大芝麻: 是这样吗?我用于创建Album的是不在同一个Controller中,也不在同一个ActionResult,连View也不同。出问题的是这个有dropdownlist的。创建Album的功能,这样也会影响?新手求指教?

支持(0) 反对(0) 时光刺客 | 园豆:60 (初学一级) | 2013-11-28 13:41

@时光刺客: 介不介意把程序发来瞧瞧。我自己最近也在做这个http://ulocl.oicp.net:8082/Picture/Index

刚好这个图片专辑创建和上传的功能做好了。交换下相互学习学习?

821881145

支持(0) 反对(0) 大芝麻 | 园豆:4 (初学一级) | 2013-11-28 13:52

@大芝麻: 程序现在有点难度,因为它不在此电脑上!程序放另一台电脑!

支持(0) 反对(0) 时光刺客 | 园豆:60 (初学一级) | 2013-11-28 13:55

@时光刺客: 你加我发个DEMO给你看看是不是你想要的

支持(0) 反对(0) 大芝麻 | 园豆:4 (初学一级) | 2013-11-28 14:44
0

新添加一个Album记录(成功保存到数据库)后,用ajax重新加载一下下拉列表就可以了。

junjieok | 园豆:779 (小虾三级) | 2013-11-28 11:23
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册