更正网上GridView控件与下拉菜单DropDownList结合示例第二项错误
2009-02-22 16:25
411 查看
凌晨我指出了网上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()
这个行代码主要获取下拉列表框中的第一项和第二项的值。因为我们在程序运行的时候不知道第一项是男还是女。所以这么做是增强程序的灵活性和通用性。
好各位看官来看截图,我们以事实说话!谁让哥哥我是本份人呢?
上图是数据库中的截图
上图是程序运行结果。
数据库中即使前两条记录改成女的也一样,无非是下拉列表第一项是女面不是男。不信的话各位看官可以去试试。如果不是的话,我就用头撞豆腐!
还有一种情况,如果遇到下拉列表框中有多个选项的话,可能用循环取出来并且比较。当然最好是写一个专门的模块来处理此类问题。
//绑定函数代码:
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()
这个行代码主要获取下拉列表框中的第一项和第二项的值。因为我们在程序运行的时候不知道第一项是男还是女。所以这么做是增强程序的灵活性和通用性。
好各位看官来看截图,我们以事实说话!谁让哥哥我是本份人呢?
上图是数据库中的截图
上图是程序运行结果。
数据库中即使前两条记录改成女的也一样,无非是下拉列表第一项是女面不是男。不信的话各位看官可以去试试。如果不是的话,我就用头撞豆腐!
还有一种情况,如果遇到下拉列表框中有多个选项的话,可能用循环取出来并且比较。当然最好是写一个专门的模块来处理此类问题。
相关文章推荐
- GridView控件修改、删除、分页、排序示例(修改含有DropDownList控件)
- JQuery与GridView控件结合示例
- GridView控件修改、删除示例(修改含有DropDownList控件)
- [Asp.Net]GridView无代码分页排序,选中,编辑,取消,删除,正反双向排序,下拉菜单DropDownList结合
- GridView控件修改、删除示例(修改含有DropDownList控件)
- GridView与DropDownList控件的结合
- GridView和下拉菜单DropDownList结合:
- GridView控件修改、删除示例(修改含有DropDownList控件)
- GridView控件修改、删除示例(修改含有DropDownList控件)
- JQuery与GridView控件结合示例
- GridView控件修改、删除示例(修改含有DropDownList控件)
- GridView控件编辑、更新、删除示例(更新包含有DropDownList控件使用)
- GridView操作大全 无代码分页排序 正反双向排序 和下拉菜单DropDownList结合,选中,编辑,取消,删除
- GridView控件编辑、更新、删除示例(更新包含有DropDownList控件使用)
- GridView控件修改、删除示例(修改含有DropDownList控件)
- GridView控件修改、删除示例(修改含有DropDownList控件)
- GridView控件修改、删除示例(修改含有DropDownList控件)
- GridView控件修改、删除示例(修改含有DropDownList控件)
- GridView和下拉菜单DropDownList结合
- GridView控件修改、删除示例(修改含有DropDownList控件)