【问题标题】:asp.net dropdownlist static listitemsasp.net 下拉列表静态列表项
【发布时间】:2012-09-09 01:16:13
【问题描述】:

我正在使用 c# 开发一个 asp.net 网站。 我有一个包含来自 sql 数据库的数据的下拉列表。下拉列表位于网格视图上。

下拉列表位于edititemtemplate上的模板字段内。

数据被加载到下拉列表中,一旦按下链接按钮,下拉列表就可以进行编辑,并带有相应的值,......以及来自数据库中的列被加载到那里(最后一件事是我不想要的)。

下拉列表绑定在 GridView1_RowDataBound 事件上:

Control ctrlgridMonedaEdit = e.Row.FindControl("gridMonedaEdit");
            if (ctrlgridMonedaEdit != null)
            {
                DropDownList dd = ctrlgridMonedaEdit as DropDownList;
                //more code here
                dd.DataSource = dt;
                dd.DataValueField = "Moneda";
                dd.DataTextField = "Moneda";
                dd.DataBind();
                DataRowView rowView = (DataRowView)e.Row.DataItem;
                string tempDate = rowView["Moneda"].ToString();
                dd.SelectedIndex = dd.Items.IndexOf(dd.Items.FindByText(tempDate));
                sqlConn.Close();
            }

我想要的是启用下拉列表进行编辑时必须加载的 3 个值。并且相应的值保持选中状态。 我试过这个:

<EditItemTemplate>
      <asp:DropDownList Width="90" runat="server" id="gridMonedaEdit" AutoPostBack="true" Enabled ="true"   >
         <asp:ListItem Value="MONEDA"> MONEDA </asp:ListItem>
                  <asp:ListItem Value="USD"> USD </asp:ListItem>
                  <asp:ListItem Value="MONEDA/USD"> MONEDA/USD </asp:ListItem>
      </asp:DropDownList>                          
</EditItemTemplate>

但是这些值没有显示出来。

我该如何解决这个问题?

【问题讨论】:

    标签: asp.net


    【解决方案1】:

    在您的下拉列表中调用dataBind() 后,我会在后面的代码中插入静态列表项。

    【讨论】:

    • 我已经这样做了:code dd.DataBind(); dd.Items.Add("MONEDA"); dd.Items.Add("USD"); dd.Items.Add("MONEDA/USD"); DataRowView rowView = (DataRowView)e.Row.DataItem; string tempDate = rowView["Moneda"].ToString(); dd.SelectedIndex = dd.Items.IndexOf(dd.Items.FindByText(tempDate)); sqlConn.Close();............显示了这些值,但问题是来自数据库的其他行的所有其他值也是显示(这是我不想要的)。我该如何解决这个问题?
    • 你能添加一个 dd.Items.Clear();调用摆脱数据库项目?
    【解决方案2】:

    您可以使用 AppendDataBoundItems 属性告诉 ASP.NET DataSource 应该附加到“静态”项。

     <asp:DropDownList id="gridMonedaEdit" AppendDataBoundItems="True"    runat="server">
    

    【讨论】:

      猜你喜欢
      • 2018-07-04
      • 2011-10-25
      • 1970-01-01
      • 1970-01-01
      • 2011-10-29
      • 1970-01-01
      • 2012-05-13
      • 1970-01-01
      相关资源
      最近更新 更多