如何使用值成员和数据成员从数据库填充控件时,如何防止下拉列表中出现重复值? [英] How do I prevent duplicate values in a dropdownlist while populating the control from database with value member and data member?
问题描述
private void rightsload()
{
DataSet EmpDs = new DataSet();
EmpDs =(DataSet)Session [EmpId ];
DataRow dr = EmpDs.Tables [0] .NewRow();
dr [EmpName] =全部;
dr [EmpId] = 0;
EmpDs.Tables [0] .Rows.InsertAt(dr,0);
if(EmpDs.Tables [0] .Rows.Count> 0)
{
DataView view = new DataView(EmpDs。 Tables [0],null,EmpId,DataViewRowState.CurrentRows);
ddlEmp.DataTextField =EmpName;
ddlEmp.DataValueField =EmpId;
ddlEmp.DataSource = view;
ddlEmp.DataBind();
}
}
每次回发都会全部倍增,从而导致页面回发
private void rightsload()
{
DataSet EmpDs = new DataSet();
EmpDs = (DataSet)Session["EmpId"];
DataRow dr = EmpDs.Tables[0].NewRow();
dr["EmpName"] = "All";
dr["EmpId"] = 0;
EmpDs.Tables[0].Rows.InsertAt(dr, 0);
if (EmpDs.Tables[0].Rows.Count > 0)
{
DataView view = new DataView(EmpDs.Tables[0], null, "EmpId", DataViewRowState.CurrentRows);
ddlEmp.DataTextField = "EmpName";
ddlEmp.DataValueField = "EmpId";
ddlEmp.DataSource = view;
ddlEmp.DataBind();
}
}
The "All" multiplies during each postback and thus leads to postback of page too
推荐答案
EmpDs =(DataSet)Session [EmpId];
显示你在会话中有数据集。
当你在Session [EmpId]中保存数据时,你在数据库中运行SQL Query。
在SQL查询中使用DISTINCT关键字。
赞
从Your_EMP_TABLE选择DISTINCT EmpId
第二个问题
在IsPostBack中写这个代码块检查赞
if(!IsPostBack){
DataRow dr = EmpDs.Tables [0]。 NewRow();
dr [EmpName] =全部;
dr [EmpId] = 0;
EmpDs。表[0] .Rows.InsertAt(dr,0);
}
我建议在IsPostBack中调用rightsload()检查
因为你需要在第一次加载页面时只运行一次这个方法,而不是每次回发。
喜欢
if(!IsPostBack)
{
rightsload();
}
EmpDs = (DataSet)Session["EmpId"];
is showing you have Dataset in session.
when you are saving data in Session["EmpId"] at that time you are running SQL Query in data base.
use DISTINCT Key word in your SQL Query.
Like
SELECT DISTINCT EmpId FROM Your_EMP_TABLE
FOR 2nd Problem
write this code block in IsPostBack check Like
if(!IsPostBack){
DataRow dr = EmpDs.Tables[0].NewRow();
dr["EmpName"] = "All";
dr["EmpId"] = 0;
EmpDs.Tables[0].Rows.InsertAt(dr, 0);
}
I would suggest call rightsload() in IsPostBack check
becouse you need run this method only once when page loads 1st time, not at every postback.
Like
if(!IsPostBack)
{
rightsload();
}
这篇关于如何使用值成员和数据成员从数据库填充控件时,如何防止下拉列表中出现重复值?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!