更正网上GridView控件与下拉菜单DropDownList结合示例第二项错误

来源:互联网 发布:安杰律师事务所 知乎 编辑:程序博客网 时间:2024/06/06 13:26

 凌晨我指出了网上GridView控件72绝技中的GridView控件与下拉菜单DropDownList结合示例中的错误,但对于第二个逻辑错误没有给出解决方案,(跑去和周公的女儿约会去了!希望大家理解!)现在我给也解决方案只要更改其中一部份代码就OK了。下面是我改写的代码:
//绑定函数代码:
  public SqlDataReader ddlbind()
    {
        string sqlstr = "select sex 员工性别 from t_test union select sex 员工性别 from t_test";
        sqlcon = new SqlConnection(oCnnectionString);
        SqlCommand sqlcom = new SqlCommand(sqlstr, sqlcon);
        sqlcon.Open();
        return sqlcom.ExecuteReader();
    }
在此我改写了用于查询数据库的字符串。这条语句在SQL Server中的联合查询语句并且去掉了重复行。网上的性别栏吧说错吧也没错,只是一般性别栏就男女两个选项(即使现在的变性人也一样,要不男变女,要不女变男,前提要是能变指女变男!)如果按网上的做法就成了数据库中有几条员工记录有有几条男女选项。这个吗估计用这套系统的应该不会不爽,但一定会非常不爽。各位看官可千万别把union关键字改成了union all了。那样就和网上的效果一样了。
接着改写了比较代码:
            for (int i = 0; i <= oGvQuestionnare.Rows.Count - 1; i++)
            {
                DataRowView mydrv = myds.Tables["T_Test"].DefaultView;
                ddl = (DropDownList)oGvQuestionnare.Rows.FindControl("oDdlPurview");          
               if (Convert.ToString(mydrv["sex"]).Trim() ==ddl.Items[0].Text.ToString().Trim())
                {                
                    ddl.SelectedIndex = 0;
                }
                if (Convert.ToString(mydrv["sex"]).Trim() == ddl.Items[1].Text.ToString().Trim())
                {                  
                    ddl.SelectedIndex = 1;
                }
            }
            sqlcon.Close();
        }
红色部份,主要是为了获取下拉列表框中相应位置的值!
ddl.Items[0].Text.ToString().Trim()
ddl.Items[1].Text.ToString().Trim()

这个行代码主要获取下拉列表框中的第一项和第二项的值。因为我们在程序运行的时候不知道第一项是男还是女。所以这么做是增强程序的灵活性和通用性。

好各位看官来看截图,我们以事实说话!谁让哥哥我是本份人呢?

上图是数据库中的截图

上图是程序运行结果。
数据库中即使前两条记录改成女的也一样,无非是下拉列表第一项是女面不是男。不信的话各位看官可以去试试。如果不是的话,我就用头撞豆腐!

还有一种情况,如果遇到下拉列表框中有多个选项的话,可能用循环取出来并且比较。当然最好是写一个专门的模块来处理此类问题。

原创粉丝点击