//引用表发生改变时 protected void ddl_RefTableName_SelectedIndexChanged(object sender, EventArgs e) { HBDropDownList ddl_RefTableName = (HBDropDownList)sender; HBDropDownList ddl_RefFieldName = null; GridView grid = (GridView)rpt_Entities.Items[Convert.ToInt32(ddl_RefTableName.Attributes["rptRowNum"])].FindControl("grid"); if (grid != null) { ddl_RefFieldName = (HBDropDownList)grid.Rows[Convert.ToInt32(ddl_RefTableName.Attributes["gridRowNum"])].FindControl("ddl_RefFieldName"); } if (ddl_RefFieldName == null || ddl_RefTableName == null) { return; } var dataSource = collectReapterData(); ddl_RefFieldName.DataSource = this.getRefFieldData(dataSource, ddl_RefTableName.SelectedValue); ddl_RefFieldName.DataTextField = "Value"; ddl_RefFieldName.DataValueField = "Key"; ddl_RefFieldName.DataBind(); }
protected void SetDorpDownListItem(List <SapFieldDataItem> dataSource) { //为引用表、引用字段下拉框赋值 #region for (int i = 0; i < rpt_Entities.Items.Count; i++) { GridView grid = (GridView)rpt_Entities.Items[i].FindControl("grid"); if (grid != null) { grid.Columns[7].Visible = checkIsCommon.Checked; grid.Columns[8].Visible = checkIsCommon.Checked; if (i == 0) { // 如果是第一张表 则表 关联表和关联字段隐藏 grid.Columns[9].ItemStyle.CssClass = "commonData"; grid.Columns[9].HeaderStyle.CssClass = "commonData"; grid.Columns[10].ItemStyle.CssClass = "commonData"; grid.Columns[10].HeaderStyle.CssClass = "commonData"; } string key = ((LinkButton)rpt_Entities.Items[i].FindControl("del_item")).CommandArgument; for (var j = 0; j < grid.Rows.Count; j++) { HBDropDownList ddl_RefTableName = ((HBDropDownList)grid.Rows[j].FindControl("ddl_RefTableName")); if (ddl_RefTableName != null) { ddl_RefTableName.Attributes["rptRowNum"] = i.ToString(); ddl_RefTableName.Attributes["gridRowNum"] = j.ToString(); List <string> ddl_dataSource = new List <string>(); ddl_dataSource.Add("--请选择--"); dataSource.Where(p => p.Key != key).Select(p => p.Key).ForEach(ddl_dataSource.Add); ddl_RefTableName.DataSource = ddl_dataSource; ddl_RefTableName.DataBind(); if (ddl_RefTableName.Items.FindByValue(dataSource[i].Collection[j].RefTableName) != null) { ddl_RefTableName.SelectedItem.Selected = false; ddl_RefTableName.Items.FindByValue(dataSource[i].Collection[j].RefTableName).Selected = true; } } HBDropDownList ddl_RefFieldName = ((HBDropDownList)grid.Rows[j].FindControl("ddl_RefFieldName")); if (ddl_RefFieldName != null) { ddl_RefFieldName.DataSource = this.getRefFieldData(dataSource, dataSource[i].Collection[j].RefTableName); ddl_RefFieldName.DataTextField = "Value"; ddl_RefFieldName.DataValueField = "Key"; ddl_RefFieldName.DataBind(); if (ddl_RefFieldName.Items.FindByValue(dataSource[i].Collection[j].RefFieldName) != null) { ddl_RefFieldName.SelectedItem.Selected = false; ddl_RefFieldName.Items.FindByValue(dataSource[i].Collection[j].RefFieldName).Selected = true; } } } } } #endregion }