jquery - MVC 4 and dataTables: checkbox entry returns null ViewModel -
what i'm trying first need display list of members need add group. user click on each checkbox each row of members user chooses. code running. problem is, when applied jquery.datatable (which renders too) doesn't seem return necessary data when of members hidden away (via next page or search). works fine when click show 100, showing every hidden data, of datatable.
my viewmodel
public class choosememberseditorviewmodel { public bool selected { get; set; } public string id { get; set; } public string name { get; set; } public string sex { get; set; } public string age { get; set; } public choosememberseditorviewmodel() { this.selected = false; this.id = ""; } }
which inside viewmodel
public class addmemberviewmodel { public list<group> group{ get; set; } public list<choosememberseditorviewmodel> lgmembers { get; set; } public addlifegroupmemberviewmodel() { this.group= new list<group>(); this.lgmembers = new list<choosememberseditorviewmodel>(); } public ienumerable<string> getselectedids() { var getselected = (from members in this.lgmembers members.selected select members.id); //returns error here saying value cannot null system.diagnostics.debug.writeline(string.format("count {0}", getselected.count())); return getselected; } }
when check 1 of values , hit add member, value must not null inside getselectedids linq
thank in advance!
edit
this how list members. submitselectedmembers gets members id's checked , adds them database.
[authorize(roles = "admin")] public actionresult addlifegroupmembers(int id) { var model = new addlifegroupmemberviewmodel(); lifegroup lifegroup = db.lifegroup.find(id); int leaderage = getage(lifegroup.lgleader.user.birthday); viewbag.age = leaderage; system.diagnostics.debug.writeline(string.format("{0}", lifegroup.lgname.tostring())); var nonmembers = u in db.users !(from lgm in db.lgmember select lgm.userid).contains(u.id) //should not part of lifegroup && !(from l in db.lifegroup l.lifegroupid.equals(id) select l.lgleader.userid).contains(u.id) //should not include leader of said group select u; system.diagnostics.debug.writeline(string.format("number of lg: {0}", model.lifegroup.count())); foreach (var user in nonmembers) { int age = getage(user.birthday); var editorviewmodel = new choosememberseditorviewmodel() { id = user.id, name = string.format("{0} {1}", user.firstname, user.lastname), selected = false, age = age.tostring(), sex = user.sex }; model.lgmembers.add(editorviewmodel); } model.lifegroup.add(lifegroup); return view(model); } public actionresult submitselectedmembers(addlifegroupmemberviewmodel model) { var getselected = (from members in model.lgmembers members.selected select members.id); list<string> _selected = new list<string>(); foreach (var selected in getselected) { _selected.add(selected); } //var selectedids = model.getselectedids(); var lifegroupid = model.lifegroup[0].lifegroupid; //system.diagnostics.debug.writeline(string.format("lifegroup id: {0}", model.lifegroup.lifegroupid)); var selectedusers = u in db.users //where selectedids.contains(u.id _selected.contains(u.id) select u; foreach (var users in selectedusers) { var idmanager = new identitymanager(); idmanager.addusertorole(users.id, "lifegroupmember"); var lgmember = new lgmember() { lifegroupid = lifegroupid, userid = users.id, datejoined = datetime.now }; /* * insert code insert part of lifegroup growthmilestone */ db.lgmember.add(lgmember); } db.savechanges(); return redirecttoaction("viewlifegroups"); }
you need instantiate objects before inserting them in lgmembers-list. isn't happening in code above.
Comments
Post a Comment