- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我在包含名为 ddlAggerationUnitId 的 DropDownList 的自定义用户控件中有以下代码。 DropDownList 在 Page_Load() 事件上被 DataBind。 “值”设置为 40,它确实存在。如果我删除 set 方法的逻辑,页面将加载并选择正确的项目,但如果值是假的,页面将抛出异常。我想通过在尝试设置值之前查看该值是否存在来避免该异常,因此逻辑是必要的。
现在看起来编译器正在将 if 语句评估为 false,尽管我确实知道它应该是 true。
public long? Value
{
get { return Int64.Parse(ddlAggerationUnitId.SelectedItem.Value); }
set
{
if (ddlAggerationUnitId.Items.FindByValue(value.ToString()) != null)
{
ddlAggerationUnitId.SelectedValue = value.ToString();
}
}
}
任何帮助将不胜感激!谢谢!
编辑:这是我的 Page_Load() 事件:
protected void Page_Load(object sender, EventArgs e)
{
ddlAggerationUnitId.DataSource = ExternalAccount.GetAggregationUnits();
ddlAggerationUnitId.DataTextField = "Value";
ddlAggerationUnitId.DataValueField = "Key";
ddlAggerationUnitId.DataBind();
}
最佳答案
以下代码目前有效,但我认为它对 DataBind 两次有点奇怪。这证实了我之前的怀疑,即数据是在 FindByValue() 之后被绑定(bind)的?
有人对如何清理这段代码有任何想法吗?
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
BindDdlAggerationUnitId();
}
}
private void BindDdlAggerationUnitId()
{
ddlAggerationUnitId.DataSource = SIGOpsGUI.App_Code.Business.ExternalAccount.GetAggregationUnits();
ddlAggerationUnitId.DataTextField = "Value";
ddlAggerationUnitId.DataValueField = "Key";
ddlAggerationUnitId.DataBind();
}
public long? Value
{
get { return Int64.Parse(ddlAggerationUnitId.SelectedItem.Value); }
set
{
BindDdlAggerationUnitId();
ddlAggerationUnitId.SelectedIndex = -1;
ListItem item = ddlAggerationUnitId.Items.FindByValue(value.ToString());
if (item != null)
{
ddlAggerationUnitId.SelectedValue = value.ToString();
}
}
}
关于c# - ASP.NET DropDownList 上的 FindByValue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4316998/
我想在一行代码中使用带有一系列数字的“FindByValue”,而不是键入它 4 次,在这种情况下,我想按值查找以“02”开头的所有项目。 if (DropDownList1.SelectedItem
我目前在模式对话框中有 2 个下拉列表,因此用于更新面板,1 个用于用户,另一个用于组,其中用户所属。
希望有人能帮我解开一个小谜团.... 此代码正在生产中,并在那里工作。这个问题出现在我的本地主机上(我正在测试我在发布到暂存之前所做的更改)。直到 2 天前它一直在工作,我不知道为什么它会自发停止工作
我在包含名为 ddlAggerationUnitId 的 DropDownList 的自定义用户控件中有以下代码。 DropDownList 在 Page_Load() 事件上被 DataBind。
我已经构建了一些绑定(bind)到 linq 数据源的下拉列表。当我在 gridview 上选择一行时,将执行查询,然后应根据查询中的数据设置下拉列表选择。当我这样做时,RegionListBox 工
我是一名优秀的程序员,十分优秀!