【问题标题】:Dropdownlist value and text set not working下拉列表值和文本集不起作用
【发布时间】:2020-12-22 10:22:12
【问题描述】:
DataTable dtPosition = PositionManager.GetPositionByName(institutionName);
if(dtPosition != null && dtPosition.Rows.Count > 0)
{
    int positionId = Convert.ToInt32(dtPosition.Rows[0]["PositionID"].ToString());
    string positionName = dtPosition.Rows[0]["PositionName"].ToString();
    ddlPosition.SelectedValue = positionId.ToString();
    ddlPosition.Text = positionName;

}

通过我的dtPosition 数据表,我正在获取positionNamePositionId,它们已成功加载到 positionId 和 PositionName 变量上。但是当我试图设置我的ddlPosition dropdownList 的值和文本时,它不起作用。也没有错误。

我希望 positionIdpositionName 成为 ddlPosition 的值和文本。你能告诉我怎么做吗?

【问题讨论】:

  • 上面是在Page_Load()上执行的吗?
  • 没有。为什么我要在页面加载中执行这个?你可以解释吗?这是我设置 ddlPosition 值的正确过程吗?
  • 在 ddlInstitution_SelectedIndexChanged 事件中不执行此操作。
  • 控件没有绑定所以不能直接通过代码设置SelectedValue。找到元素的索引并设置 SelectedIndex。查看this answer
  • 我认为这是您的问题,ddlInstitution_SelectedIndexChanged 事件仅在客户端更改控件的值时才会触发。您需要在Page_Load() 上设置该值,但值得确保您防止在PostBack 期间设置此默认值。这对你有意义吗?

标签: c# asp.net asp.net-mvc webforms dropdown


【解决方案1】:

如果 ddlposition 为空,只需即时添加项目

 //put the positionId and Name in a list item
 ListItem item = new ListItem(positionName, positionId.ToString());
  ddlPosition.Items.Add(item);
  
  // you may need to call ddlPosition.Databound();

 //then if needed set the selected value
 ddlPosition.SelectedValue = positionID.ToString();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-24
    • 2015-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-18
    • 1970-01-01
    相关资源
    最近更新 更多