radiobuttonlist动态绑定、获取数据中数据进行选中以及写入数据库

版权声明:本文为博主原创文章,转载请注明出处。 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;
            }
        }

猜你喜欢

转载自blog.csdn.net/smallbabylong/article/details/78947589