private void magix_forms_set_values(object sender, ActiveEventArgs e) { Node ip = Ip(e.Params); if (ShouldInspect(ip)) { AppendInspectFromResource( ip["inspect"], "Magix.forms", "Magix.forms.hyperlisp.inspect.hl", "[magix.forms.set-values-dox].value"); AppendCodeFromResource( ip, "Magix.forms", "Magix.forms.hyperlisp.inspect.hl", "[magix.forms.set-values-sample]"); return; } Select lst = FindControl<Select>(e.Params); lst.Items.Clear(); if (ip.Contains("values")) { foreach (Node idx in ip["values"]) { ListItem it = new ListItem(idx.Get<string>(), idx.Name); if (!idx.GetValue("enabled", true)) it.Enabled = false; lst.Items.Add(it); } } lst.ReRender(); }
protected override void FillOutParameters(Node pars, BaseControl ctrl) { base.FillOutParameters(pars, ctrl); BaseWebControlListFormElement ret = ctrl as BaseWebControlListFormElement; Node ip = Ip(pars); Node node = ip["_code"].Get<Node>(); if (node.Contains("items")) { foreach (Node idxItemNode in node["items"]) { if (idxItemNode.Name == null) throw new ArgumentException("list item for select needs unique name of node to be used as value"); if (idxItemNode.Value == null) throw new ArgumentException("list item for select needs value of node to be used as text to show user in item"); ListItem item = new ListItem(idxItemNode.Get<string>(), idxItemNode.Name); if (!idxItemNode.GetValue("enabled", true)) item.Enabled = false; ret.Items.Add(item); } } }