private void CreateLocusControls() { DataTable dtLocus = bi.GetLocus(Guid.Parse(Session["LabKitID"].ToString())); int rows = dtLocus.Rows.Count / 5; if (dtLocus.Rows.Count % 5 > 0) { rows++; } List <Table> tables = GetTables(); int replicate = 1; foreach (Table table in tables) { for (int i = 0; i < rows; i++) { TableRow tr = new TableRow(); tr.Height = 46; for (int j = 0; j < 5 && i * 5 + j < dtLocus.Rows.Count; j++) { TableCell td = new TableCell(); td.Style.Add("width", "170"); td.Style.Add("height", "48"); td.Style.Add("background-image", "images/combo_bg.gif"); EvidenceLocus locus = (EvidenceLocus)LoadControl("~/Controls/EvidenceLocus.ascx"); locus.Attributes.Add("style", "width: 170; height:48;"); string locusName = dtLocus.Rows[i * 5 + j]["FieldName"].ToString(); locus.ID = "Rep" + replicate + "_" + locusName; locus.LocusName.Text = locusName; td.Controls.Add(locus); tr.Controls.Add(td); if (j != 4) { TableCell tdSpacer = new TableCell(); tdSpacer.Width = 18; tdSpacer.Controls.Add(new LiteralControl(" ")); tr.Controls.Add(tdSpacer); } } table.Rows.Add(tr); if (i != rows - 1) { TableRow trSpacer = new TableRow(); TableCell td = new TableCell(); td.ColumnSpan = 9; td.Height = 8; td.Controls.Add(new LiteralControl("<img src=\"images/spacer.gif\" width=\"1\" height=\"4\" />")); trSpacer.Controls.Add(td); table.Controls.Add(trSpacer); } } replicate++; } }
private void AddDropDownJavaScripts() { List <DropDownList> ddlControls = new List <DropDownList>(); GetDropDownsList(ddlControls); foreach (DropDownList ddlControl in ddlControls) { StringBuilder sbScript = new StringBuilder(); sbScript.Append("javascript:"); EvidenceLocus parent = ((EvidenceLocus)ddlControl.Parent); string ddID = ddlControl.ClientID; // get text ID (when we do this from DB, we will generate them together, so we will set it in the same place... much better) string txtID = parent.Alleles.ClientID; sbScript.Append("var txt = document.getElementById('" + txtID + "');"); sbScript.Append("var dd = document.getElementById('" + ddID + "');"); sbScript.Append("if(dd.value == 'INC') txt.value = '';"); sbScript.Append("else if(dd.value == 'NEG') txt.value = 'NEG';"); sbScript.Append("else if(txt.value != '' && txt.value != 'NEG') txt.value += ',' + dd.value;"); sbScript.Append("else txt.value = dd.value;"); ddlControl.Attributes.Add("onchange", sbScript.ToString()); } }
private void GetDropDownsList(List <DropDownList> ddlControls) { DataTable dtLoci = bi.GetLocus(Guid.Parse(Session["LabKitID"].ToString())); foreach (DataRow dr in dtLoci.Rows) { string locus = dr["FieldName"].ToString(); int replicate = 1; foreach (Table table in GetTables()) { string controlName = "Rep" + replicate.ToString() + "_" + locus; EvidenceLocus el = (EvidenceLocus)table.FindControl(controlName); ddlControls.Add(el.DdAllele); replicate++; } } }
private void BindDropDowns() { DataTable dtLoci = bi.GetLocus(Guid.Parse(Session["LabKitID"].ToString())); foreach (DataRow dr in dtLoci.Rows) { string locus = dr["FieldName"].ToString(); DataTable dtValues = bi.getLocusAlleles(locus); // remove the zero allele which only exists to provide a default frequency value for an infrequent allele. //the user can type this in manually as any allele that's not in the dropdown dtValues.Rows.Remove(dtValues.Select("FiledValue='0'")[0]); dtValues.Select("FiledName='INC'")[0]["FiledValue"] = "INC"; DataRow drNeg = dtValues.NewRow(); drNeg["FiledName"] = "NEG"; drNeg["FiledValue"] = "NEG"; dtValues.Rows.Add(drNeg); List <DropDownList> ddlControls = new List <DropDownList>(); int replicate = 1; foreach (Table table in GetTables()) { string controlName = "Rep" + replicate.ToString() + "_" + locus; EvidenceLocus el = (EvidenceLocus)table.FindControl(controlName); ddlControls.Add(el.DdAllele); replicate++; } foreach (DropDownList ddlControl in ddlControls) { ddlControl.DataSource = dtValues; ddlControl.DataTextField = "FiledName"; ddlControl.DataValueField = "FiledValue"; ddlControl.DataBind(); } } }