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;??
听说是页面重载的问题?不懂啊~
求解 谢谢!!
每个项都是字符串.
展开
 我来答
来自灵栖洞浓桃艳李的桧柏
推荐于2016-09-09 · TA获得超过451个赞
知道小有建树答主
回答量:233
采纳率:100%
帮助的人:252万
展开全部
首先,你说要添加个请选择,可以直接dropdownlist.Items.Add("请选择");嘛
放在try代码前面就可以了
然后就是你说每次都是第一项,因为你的dropdownlist的自动回发属性你没设定,也就是你每次选择了一个,都会执行pageload里面的代码,有两种方法可以改进,第一是把你的这个dropdownlist的自动回发属性改为false,就是在前台他的属性里面,第二也可以再pageload里面所有的代码都放到if (!IsPostBack){}
里面,这样只有你刷新页面的时候才执行,而选择的时候不会执行了
zqh_you
2015-11-14 · 超过20用户采纳过TA的回答
知道答主
回答量:139
采纳率:0%
帮助的人:28.3万
展开全部
首先,你说要添加个请选择,可以直接dropdownlist.Items.Add("请选择");
放在try代码前面就可以了
然后就是你说每次都是第一项,因为你的dropdownlist的自动回发属性你没设定,也就是你每次选择了一个,都会执行pageload里面的代码,有两种方法可以改进,第一是把你的这个dropdownlist的自动回发属性改为false,就是在前台他的属性里面,第二也可以再pageload里面所有的代码都放到if (!IsPostBack){}
里面,这样只有你刷新页面的时候才执行,而选择的时候不会执行了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
风若水涵
2010-05-24 · TA获得超过114个赞
知道小有建树答主
回答量:61
采纳率:0%
帮助的人:115万
展开全部
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">
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友88ca838
2010-05-24 · TA获得超过503个赞
知道小有建树答主
回答量:767
采纳率:0%
帮助的人:490万
展开全部
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) 中
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式