版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/smallbabylong/article/details/78947589
动态绑定控件
//方法复制修改一下sql语句即可使用
public static void ControlDataBind(object control, string TableName)
{
if (!(control is DropDownList || control is CheckBoxList || control is RadioButtonList))
{
throw new Exception("不能绑定此种类型的控件!");
}
string strSQL;
if (TableName.Equals("CXYD_ProjectArea"))
strSQL = "select CXYD_ProjectArea.ID,CXYD_ProjectArea.Data Name from " + TableName;//CXYD_ProjectArea
else
{
strSQL = "select FoundationData.ID,FoundationData.Data Name from FoundationData " +
"inner join FoundationTable on FoundationData.TableName=FoundationTable.Name " +
"where FoundationData.Enable=1 and FoundationData.TableName='" + TableName + "' order by FoundationData.[Order]";
}
DataTable DT = new DataTable();
DT = DbHelperSQL.GetDataTable(strSQL);
if (DT.Rows.Count > 0)
{
control.GetType().GetProperty("DataSource").SetValue(control, DT, null);
control.GetType().GetProperty("DataValueField").SetValue(control, "ID", null);
control.GetType().GetProperty("DataTextField").SetValue(control, "Name", null);
control.GetType().InvokeMember("DataBind", System.Reflection.BindingFlags.InvokeMethod, null, control, new object[] { });
}
if (control is DropDownList)
{
DropDownList DDL = (DropDownList)control;
DDL.Items.Insert(0, new ListItem("--请选择--", ""));
}
}
调用
FoundationData.ControlDataBind(txtProjectAreaItemName, "CXYD_ProjectArea");//传入参数为控件id和表名
根据数据库内容选中控件
<asp:radiobuttonlist id= "txtProjectAreaItemName" runat= "server " RepeatDirection= "Horizontal " CssClass= "black " Width= "570px ">
<asp:ListItem Value= "1 " Selected= "True "> 简体中文 </asp:ListItem>
<asp:ListItem Value= "2 "> 繁体中文 </asp:ListItem>
<asp:ListItem Value= "3 "> 英文 </asp:ListItem>
</asp:radiobuttonlist>
//遍历控件值跟数据库匹配进行选中控件
//txtProjectAreaItemName:radiobuttonlist页面控件id
//model.ProjectAreaItemName数据库中数据
//txtProjectAreaItemName.Items[i].Value控件的value
//txtProjectAreaItemName.Items[i].Text控件的Text
for (int i = 0; i < txtProjectAreaItemName.Items.Count; i++)//获取item数量
{
if(model.ProjectAreaItemName.Contains(txtProjectAreaItemName.Items[i].Value))
//跟数据库中数据进行比对,是否包含此选项
{
txtProjectAreaItemName.Items[i].Selected = true;
break;
}
}
写回数据库
//获取控件值赋给数据库
for (int i = 0; i < txtProjectAreaItemName.Items.Count; i++)
{
if (txtProjectAreaItemName.Items[i].Selected)
{
ProjectAreaItemName = ProjectAreaItemName+ txtProjectAreaItemName.Items[i].Value;
//txtProjectAreaItemName.Items[i].Selected = true;
break;
}
}