日期:2014-05-18  浏览次数:20453 次

为什么Session选择的值老是为%
使用dropdownList对session   进行赋值
<asp:dropdownlist   id= "DGrade "   runat= "server "> </asp:dropdownlist> </TD>
这是用explore里查看菜单源文件看到的
<TD   style= "WIDTH:   67px "> <select   name= "DGrade "   id= "DGrade ">
<option   value= " "> 请选择年级 </option>
<option   value= "高三年级 "> 高三年级 </option>
<option   value= "高二年级 "> 高二年级 </option>
<option   value= "高一年级 "> 高一年级 </option>
<option   value= "初三年级 "> 初三年级 </option>
<option   value= "初二年级 "> 初二年级 </option>
<option   value= "初一年级 "> 初一年级 </option>

</select>


当我在前台选择高二年级时   测试发现Session[ "DGrade "]= "% ";
为什么不是DGrade.SelectedValue.ToString().Trim();

if(DGrade.SelectedValue.ToString()!= " ")
{
Session[ "DGrade "]=DGrade.SelectedValue.ToString().Trim();
}
else
{
Session[ "DGrade "]= "% ";

}




------解决方案--------------------
if (!Page.IsPostBack)
{
------解决方案--------------------
绑定的代码.前面加上 if(!this.IsPostBack)
------解决方案--------------------
是不是没有启用AutoPostBack???
------解决方案--------------------
楼上的,楼主用的是dropdownlist!

你的dropdownlist的绑定确定是加在
if (!Page.IsPostBack)
{
}
里面的?
如果确定,监视DGrade.SelectedValue.ToString()的值,看看是否为空。

或者换种写法:
if(DGrade.SelectedValue.ToString()== " ")
{
Session[ "DGrade "]= "% ";

}
else
{
Session[ "DGrade "]=DGrade.SelectedValue.ToString().Trim();
}

试试看


------解决方案--------------------
1。
确定对 DropDownList 的绑定放在 !IsPostBack 里面
if (!IsPostBack) {
MyDropDownList.DataSource = GetMyDataSource();
MyDropDownList.DataBind();
}


2。
下面代码放在那个事件里面的?

if(DGrade.SelectedValue.ToString()!= " ")
{
Session[ "DGrade "]=DGrade.SelectedValue.ToString().Trim();
}
else
{
Session[ "DGrade "]= "% ";

}