为什么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 "]= "% ";
}