[英]C#/ASP.NET gridview databind dropdownlist index changed
I am new to .net world and I could not figure out why the below code does not work.我是 .net 世界的新手,我无法弄清楚为什么下面的代码不起作用。 I have a dropdownlist populated with DEPARTMENT_NAME and value as DEPARTMENT_ID.
我有一个用 DEPARTMENT_NAME 和值作为 DEPARTMENT_ID 填充的下拉列表。 I have a gridview which populates the employees data based on department_id selected from dropdown list.
我有一个gridview,它根据从下拉列表中选择的department_id 填充员工数据。 I have written the following code but the gridview is not populating.
我已经编写了以下代码,但 gridview 没有填充。 Can someone please help what I am doing wrong here.
有人可以帮助我在这里做错什么。
protected void ddDepartments_SelectedIndexChanged(object sender, EventArgs e)
{
string connStr = ConfigurationManager.ConnectionStrings["myCon"].ConnectionString;
OracleConnection oConn = new OracleConnection(connStr);
oConn.Open();
string SqlText = "Select * from employees where department_id = :department_id";
OracleCommand cmd = new OracleCommand(SqlText, oConn);
cmd.CommandType = CommandType.Text;
OracleParameter p_department_id = new OracleParameter();
p_department_id.OracleDbType = OracleDbType.Varchar2;
p_department_id.Value = ddDepartments.SelectedItem.Value;
cmd.Parameters.Add(p_department_id);
OracleDataAdapter adapter = new OracleDataAdapter(cmd);
DataTable dtEmployees = new DataTable();
adapter.Fill(dtEmployees);
gvEmployees.DataSource = dtEmployees;
gvEmployees.DataBind();
dtEmployees.Dispose();
adapter.Dispose();
cmd.Dispose();
oConn.Close();
oConn.Dispose();
}
You need to use a Session variable to persist the gridView datasource on Postback which is sent by the dropdownlist.您需要使用 Session 变量将 gridView 数据源保存在由下拉列表发送的 Postback 上。
So right after:所以就在之后:
gvEmployees.DataSource = dtEmployees;
gvEmployees.DataBind();
Add:添加:
Session("gvDS") = gvEmployees.DataSource;
In the page Load() method:在页面 Load() 方法中:
if (Session["gvDS"] != null && IsPostBack)
{
gvEmployees.DataSource = Session["gvDS"];
gvEmployees.DataBind();
}
else
BindGridView(); // you initial gvEmployees binding method
Please see my answer @:请看我的回答@:
Asp.net Web Forms GridView Dynamic Column Issue Asp.net Web Forms GridView 动态列问题
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.