关于“DropDownList 有一个无效 SelectedValue,原因是它不存在于项目列表中”的解决办法

出现“DropDownList”有一个无效   SelectedValue,原因是它不存在于项目列表中 这个异常的原因:

可能是您将DropDownList 控件放在某个控件中了 例如:在DataList控件中放了一个DropDownList ,或者是在FormView 或者是在 GrideView中放的DropDownList,这个DropDownList又是绑定了数据源,放他的容器DataList 或FormView 或GrideView也绑定了数据源 ,DropDownList又绑定了 容器中的数据字段,如果容器中的数据字段的值在DropDownList的数据字段值的列表中找不到数据,就会出现这个错误了。

我的解决的办法是 将 DropDownList 的 AppendDataBoundItems 设为 True

然后在DropDownList的 Load 事件中 加上 在 DropDownList绑定的数据源中增加没有的数据就可以了

   Protected   Sub  DropDownList10_Load( ByVal  sender  As   Object ByVal  e  As  System.EventArgs)
        
CType ( Me .FormView2.FindControl( " DropDownList10 " ), DropDownList).Items.Add( New  ListItem( " 选择 " .ToString(),  0 ))
    
End Sub
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
,可以通过GridView的RowDataBound事件来实现。具体步骤如下: 1. 在GridView的列添加一个TemplateField,将该列的ItemTemplate设置为一个DropDownList控件。 2. 在GridView的RowDataBound事件获取当前行的数据,并根据其一列的值来设置DropDownList的数据源和选项。 代码示例: ``` protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { // 获取当前行的数据 DataRowView dataRow = (DataRowView)e.Row.DataItem; // 获取DropDownList控件 DropDownList ddl = (DropDownList)e.Row.FindControl("DropDownList1"); // 根据另一列的值设置DropDownList的数据源和选项 string value = dataRow["ColumnName"].ToString(); if (value == "Value1") { ddl.DataSource = GetDataForValue1(); ddl.SelectedValue = dataRow["OtherColumnName"].ToString(); } else if (value == "Value2") { ddl.DataSource = GetDataForValue2(); ddl.SelectedValue = dataRow["OtherColumnName"].ToString(); } // 其他情况... ddl.DataBind(); } } // 获取DropDownList的数据源 private DataTable GetDataForValue1() { // TODO: 返回数据源 } private DataTable GetDataForValue2() { // TODO: 返回数据源 } // 在aspx添加以下代码: <asp:GridView ID="GridView1" runat="server" OnRowDataBound="GridView1_RowDataBound"> <Columns> <asp:TemplateField> <ItemTemplate> <asp:DropDownList ID="DropDownList1" runat="server"></asp:DropDownList> </ItemTemplate> </asp:TemplateField> <!-- 其他列... --> </Columns> </asp:GridView> ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值