急,在线等, 关于一字符 DropDownList 是需要绑定的,你这样是不对的。, 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 DropDownList1.SelectedValue=& session("drop1_desc")& 这个是什么?多余的吧而且要把session值转到string类型才可以 我是这样写的 DropDownList1.SelectedValue=& session("drop1_desc")结果老是为错,因为它等于 dropdownlist1.selectedvalue=华南DropDownList1.SelectedValue=(string)session("drop1_desc"); 我以前写的一篇,给你参考一下:在ASP.NET 2.0 网站页面的开发过程中,经常需要把DropDownList等列表类控件的SelectedValue值设置为一个从数据库或其他地方读取出来的值。最简单的办法就是直接进行指定:DropDownList1.SelectedValue = "中国";但有的时候如果DropDownList1中没有"中国"这一项的话,赋值就会出现异常:异常详细信息: System.ArgumentOutOfRangeException: “DropDownList1”有一个无效 SelectedValue,因为它不在项目列表中。想要实现的目标:如果指定的值不在列表项中,则不设置选中项,而且不要抛出异常。查看MSDN:SelectedValue 属性还可以用于选择列表控件中的某一项,方法是用该项的值设置此属性。如果列表控件中的任何项都不包含指定值,则会引发 System.ArgumentOutOfRangeException。但奇怪的是这样赋值在大部分情况下都不会出错,只是偶尔会出错,通过反射查了一下SelectedValue的实现,找到了原因。public virtual string SelectedValue{ get { int num1 = this.SelectedIndex; if (num1 >= 0) { return this.Items[num1].Value; } return string.Empty; } set { if (this.Items.Count != 0) { if ((value == null) || (base.DesignMode && (value.Length == 0))) { this.ClearSelection(); return; } ListItem item1 = this.Items.FindByValue(value); if ((((this.Page != null) && this.Page.IsPostBack) && this._stateLoaded) && (item1 == null)) { throw new ArgumentOutOfRangeException("value", SR.GetString("ListControl_SelectionOutOfRange", new object[] { this.ID, "SelectedValue" })); } if (item1 != null) { this.ClearSelection(); item1.Selected = true; } } this.cachedSelectedValue = value; }}原来只有在页面是IsPostBack的情况下,赋值才会出错。另外这样写也会出现异常:DropDownList1.Items.FindByValue("中国").Selected = true;最后找到了一种方法可以实现上面的要求:DropDownList1.SelectedIndex = DropDownList1.Items.IndexOf(DropDownList1.Items.FindByValue("中国"));就是如果通过FindByValue没有找到指定项则为null,而Items.IndexOf(null)会返回-1 客户端直接打开服务端文件,怎么实现? visual 快捷键 按文件名打开文件 关于用webpart定制个性首页的问题 如何在刷新页面后保存文本框里的值 关于report Server 数据筛选器 关于多个数据绑定的问题,小问题希望大家帮帮忙啦!急急!! 打印如何通过js设置纵向还是横向 在Datagrid中加入LinkButton,点击后不触发Datagrid_ItemCommand 事件 !!!!Why???? 在线急等,100分!!!!!! Asp.net C# 如何出现你有几条新消息的提示框 checkbox Datalist 批量删除 MENU邦定数据
结果老是为错,因为它等于 dropdownlist1.selectedvalue=华南
DropDownList1.SelectedValue=(string)session("drop1_desc");
DropDownList1.SelectedValue = "中国";
但有的时候如果DropDownList1中没有"中国"这一项的话,赋值就会出现异常:
异常详细信息: System.ArgumentOutOfRangeException: “DropDownList1”有一个无效 SelectedValue,因为它不在项目列表中。想要实现的目标:如果指定的值不在列表项中,则不设置选中项,而且不要抛出异常。
查看MSDN:
SelectedValue 属性还可以用于选择列表控件中的某一项,方法是用该项的值设置此属性。如果列表控件中的任何项都不包含指定值,则会引发 System.ArgumentOutOfRangeException。但奇怪的是这样赋值在大部分情况下都不会出错,只是偶尔会出错,通过反射查了一下SelectedValue的实现,找到了原因。
public virtual string SelectedValue
{
get
{
int num1 = this.SelectedIndex;
if (num1 >= 0)
{
return this.Items[num1].Value;
}
return string.Empty;
}
set
{
if (this.Items.Count != 0)
{
if ((value == null) || (base.DesignMode && (value.Length == 0)))
{
this.ClearSelection();
return;
}
ListItem item1 = this.Items.FindByValue(value);
if ((((this.Page != null) && this.Page.IsPostBack) && this._stateLoaded) && (item1 == null))
{
throw new ArgumentOutOfRangeException("value", SR.GetString("ListControl_SelectionOutOfRange", new object[] { this.ID, "SelectedValue" }));
}
if (item1 != null)
{
this.ClearSelection();
item1.Selected = true;
}
}
this.cachedSelectedValue = value;
}
}原来只有在页面是IsPostBack的情况下,赋值才会出错。
另外这样写也会出现异常:
DropDownList1.Items.FindByValue("中国").Selected = true;
最后找到了一种方法可以实现上面的要求:
DropDownList1.SelectedIndex = DropDownList1.Items.IndexOf(DropDownList1.Items.FindByValue("中国"));
就是如果通过FindByValue没有找到指定项则为null,而Items.IndexOf(null)会返回-1