Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从asp.net中的ArrayList值绑定ComboBox?_C#_Asp.net - Fatal编程技术网

C# 如何从asp.net中的ArrayList值绑定ComboBox?

C# 如何从asp.net中的ArrayList值绑定ComboBox?,c#,asp.net,C#,Asp.net,但是没有正确填充 我还提到了这样的表,并将代码转换为图像 代码如下: DataTable dtUserType = new Common().GetUserType(true); DataTable dtUserType 1= new Common().GetUserTypeByUser(true); ArrayList lstUserTypeId =new ArrayList(); lstUserTypeId.AddRange(

但是没有正确填充

我还提到了这样的表,并将代码转换为图像

代码如下:

        DataTable dtUserType = new Common().GetUserType(true);
        DataTable dtUserType 1= new Common().GetUserTypeByUser(true);

        ArrayList lstUserTypeId =new ArrayList();
        lstUserTypeId.AddRange(dtUserType1.Rows[0]["UserTypeId"].ToString().Split(','));

        DataTable dtDownlist = new DataTable();
        dtDownlist.Columns.Add("UserTypeId");
        dtDownlist.Columns.Add("UserType");
        DataRow dr;


        foreach (string s in lstUserTypeId)
        {
            for (int i = 0; i < dtUserType.Rows.Count; i++)
            {

                dr = dtDownlist.NewRow();
                 //List Of superior List
                if(s.ToString() != dtUserType.Rows[i]["UserTypeId"].ToString())
                {


                    dr["USerType"] = dtUserType.Rows[i]["UserType"].ToString();
                    dr["UserTypeId"] = dtUserType.Rows[i]["UserTypeId"].ToString();
                    dtDownlist.Rows.Add(dr);
                }


            }
        }


        cmbUser.DataSource = dtDownlist; 
        cmbUser.DataTextField = "UserType";
        cmbUser.DataValueField = "UserTypeId";
        cmbUser.DataBind();
DataTable dtUserType=new Common().GetUserType(true);
DataTable dtUserType 1=new Common().GetUserTypeByUser(true);
ArrayList lstUserTypeId=新的ArrayList();
lstUserTypeId.AddRange(dtUserType1.Rows[0][“UserTypeId”].ToString().Split(',');
DataTable dtDownlist=新的DataTable();
dtDownlist.Columns.Add(“UserTypeId”);
添加(“用户类型”);
数据行dr;
foreach(lstUserTypeId中的字符串s)
{
for(int i=0;i
一般来说:

  • 不要将主表拆分为每个表有一列的子表-这就是为什么表中有列的原因
  • 查询数据时-使用LINQ
  • 尽可能不要使用DataTable——观察我在回答中发布了多少强制转换操作(在您的情况下,使用键入的表格Common)

    DataTable common=new common();//Id,UserType,UserTypeId
    var sections=common.Where(c=>c.UserType.ToString()==“B”).First()
    .ToString().Split(',');
    DataTable dtDownlist=新的DataTable();
    dtDownlist.Columns.Add(“UserTypeId”);
    添加(“用户类型”);
    数据行dr;
    foreach(节中的字符串id)
    {
    for(int i=0;i

  • 张贴你的代码,而不是你的代码截图,请清楚地解释问题是什么。问题是组合框多次填充,而不是正确的UserTypeId。我想填写UserType列表,其中userTable具有UserTypeId。表示如果UserType=B,则组合框从ArrayList填充C和D
    DataTable common = new Common(); // Id, UserType, UserTypeId
    
    var sections = common.Where(c => c.UserType.ToString() == "B").First()
                         .ToString().Split(',');
    
    DataTable dtDownlist = new DataTable();
    dtDownlist.Columns.Add("UserTypeId");
    dtDownlist.Columns.Add("UserType");
    DataRow dr;
    
    
    foreach (string id in sections)
    {
        for (int i = 0; i < dtUserType.Rows.Count; i++)
        {
            if(Convert.ToInt16(id) == Convert.ToInt16(common.Rows[i]["Id"]))
            {
                dr = dtDownlist.NewRow();
    
                dr["USerType"] = dtUserType.Rows[i]["UserType"].ToString();
                dr["UserTypeId"] = dtUserType.Rows[i]["UserTypeId"].ToString();
                dtDownlist.Rows.Add(dr);
            }
        }
    }
    
    
    cmbUser.DataSource = dtDownlist; 
    cmbUser.DataTextField = "UserType";
    cmbUser.DataValueField = "UserTypeId";
    cmbUser.DataBind();