dropdownlist动态绑定数据后怎样获取选定值 还有添加 默认选择项问题
protectedvoidPage_Load(objectsender,EventArgse){try{this.dropdownlist.Items.Clear();s...
protected void Page_Load(object sender, EventArgs e)
{
try
{
this.dropdownlist.Items.Clear();
string sql = "SELECT Name FROM WarehouseTitle";
SqlCommand command = new SqlCommand(sql, DBHelper.connection);
DBHelper.connection.Open();
SqlDataReader dataReader = command.ExecuteReader();
string userType = "";
while (dataReader.Read())
{
userType = (string)dataReader[0];
dropdownlist.Items.Add(userType);
}
dataReader.Close();
}
如果想添加默认选择项“请选择”应该怎么加呢?
还有程序运行的时候每次选择不同的项结果出来的选中值都是第一项
要怎么取值啊?
string strTemp=dropdownlist.SelectedItem.Text;??
听说是页面重载的问题?不懂啊~
求解 谢谢!!
每个项都是字符串. 展开
{
try
{
this.dropdownlist.Items.Clear();
string sql = "SELECT Name FROM WarehouseTitle";
SqlCommand command = new SqlCommand(sql, DBHelper.connection);
DBHelper.connection.Open();
SqlDataReader dataReader = command.ExecuteReader();
string userType = "";
while (dataReader.Read())
{
userType = (string)dataReader[0];
dropdownlist.Items.Add(userType);
}
dataReader.Close();
}
如果想添加默认选择项“请选择”应该怎么加呢?
还有程序运行的时候每次选择不同的项结果出来的选中值都是第一项
要怎么取值啊?
string strTemp=dropdownlist.SelectedItem.Text;??
听说是页面重载的问题?不懂啊~
求解 谢谢!!
每个项都是字符串. 展开
4个回答
展开全部
首先,你说要添加个请选择,可以直接dropdownlist.Items.Add("请选择");嘛
放在try代码前面就可以了
然后就是你说每次都是第一项,因为你的dropdownlist的自动回发属性你没设定,也就是你每次选择了一个,都会执行pageload里面的代码,有两种方法可以改进,第一是把你的这个dropdownlist的自动回发属性改为false,就是在前台他的属性里面,第二也可以再pageload里面所有的代码都放到if (!IsPostBack){}
里面,这样只有你刷新页面的时候才执行,而选择的时候不会执行了
放在try代码前面就可以了
然后就是你说每次都是第一项,因为你的dropdownlist的自动回发属性你没设定,也就是你每次选择了一个,都会执行pageload里面的代码,有两种方法可以改进,第一是把你的这个dropdownlist的自动回发属性改为false,就是在前台他的属性里面,第二也可以再pageload里面所有的代码都放到if (!IsPostBack){}
里面,这样只有你刷新页面的时候才执行,而选择的时候不会执行了
展开全部
首先,你说要添加个请选择,可以直接dropdownlist.Items.Add("请选择");
放在try代码前面就可以了
然后就是你说每次都是第一项,因为你的dropdownlist的自动回发属性你没设定,也就是你每次选择了一个,都会执行pageload里面的代码,有两种方法可以改进,第一是把你的这个dropdownlist的自动回发属性改为false,就是在前台他的属性里面,第二也可以再pageload里面所有的代码都放到if (!IsPostBack){}
里面,这样只有你刷新页面的时候才执行,而选择的时候不会执行了
放在try代码前面就可以了
然后就是你说每次都是第一项,因为你的dropdownlist的自动回发属性你没设定,也就是你每次选择了一个,都会执行pageload里面的代码,有两种方法可以改进,第一是把你的这个dropdownlist的自动回发属性改为false,就是在前台他的属性里面,第二也可以再pageload里面所有的代码都放到if (!IsPostBack){}
里面,这样只有你刷新页面的时候才执行,而选择的时候不会执行了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
this.DropDownList1.SelectedIndexChanged += new EventHandler(DropDownList1_SelectedIndexChanged);
this.DropDownList1.Items.Clear();
for (int i = 0; i < 10; i++)
{
this.DropDownList1.Items.Add(i.ToString());
}
this.DropDownList1.Items.Insert(0, "请选择");
}
if (ViewState["Index"] != null) this.DropDownList1.SelectedIndex = Convert.ToInt16( ViewState["Index"].ToString());
}
void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
ViewState["Index"] = this.DropDownList1.SelectedIndex ;
Response.Write("<script>alert('" + this.DropDownList1.SelectedItem.Text + "')</script>");
}
这是看到你问题后随手写的一段测试代码,通过测试,因为嫌你的连数据库麻烦,我想应该没问题了吧,如果你还是不会对应你的连数据库的代码改上去的话说一下``
页面重载后变量值会消失,你若想把变量的值保存下来的话应该把它放到ViewState里面保存下来,放在这里的变量值不会在本页面重载时消失
然后注意你界面上的下拉框有个属性要加一下 AutoPostBack="true"
要这样:
<asp:DropDownList ID="DropDownList1" AutoPostBack="true" runat="server">
{
if (!IsPostBack)
{
this.DropDownList1.SelectedIndexChanged += new EventHandler(DropDownList1_SelectedIndexChanged);
this.DropDownList1.Items.Clear();
for (int i = 0; i < 10; i++)
{
this.DropDownList1.Items.Add(i.ToString());
}
this.DropDownList1.Items.Insert(0, "请选择");
}
if (ViewState["Index"] != null) this.DropDownList1.SelectedIndex = Convert.ToInt16( ViewState["Index"].ToString());
}
void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
ViewState["Index"] = this.DropDownList1.SelectedIndex ;
Response.Write("<script>alert('" + this.DropDownList1.SelectedItem.Text + "')</script>");
}
这是看到你问题后随手写的一段测试代码,通过测试,因为嫌你的连数据库麻烦,我想应该没问题了吧,如果你还是不会对应你的连数据库的代码改上去的话说一下``
页面重载后变量值会消失,你若想把变量的值保存下来的话应该把它放到ViewState里面保存下来,放在这里的变量值不会在本页面重载时消失
然后注意你界面上的下拉框有个属性要加一下 AutoPostBack="true"
要这样:
<asp:DropDownList ID="DropDownList1" AutoPostBack="true" runat="server">
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
if (!IsPostBack)
{
this.dropdownlist.Items.Clear();
string sql = "SELECT Name FROM WarehouseTitle";
SqlCommand command = new SqlCommand(sql, DBHelper.connection);
DBHelper.connection.Open();
SqlDataReader dataReader = command.ExecuteReader();
string userType = "";
while (dataReader.Read())
{
userType = (string)dataReader[0];
dropdownlist.Items.Add(userType);
}
dataReader.Close();
}
try 里面换成以上代码
其实就是把绑定写到 if (!IsPostBack) 中
{
this.dropdownlist.Items.Clear();
string sql = "SELECT Name FROM WarehouseTitle";
SqlCommand command = new SqlCommand(sql, DBHelper.connection);
DBHelper.connection.Open();
SqlDataReader dataReader = command.ExecuteReader();
string userType = "";
while (dataReader.Read())
{
userType = (string)dataReader[0];
dropdownlist.Items.Add(userType);
}
dataReader.Close();
}
try 里面换成以上代码
其实就是把绑定写到 if (!IsPostBack) 中
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询