gpt4 book ai didi

c# - 不同的值成员,相同的控件

转载 作者:太空宇宙 更新时间:2023-11-03 22:27:06 25 4
gpt4 key购买 nike

编辑1

我相信我的问题源于以下几点。填充下拉部分的函数将显示成员设置为 CountyName。然后,当我按照建议尝试设置 SelectedText 或 EditValue 时,该函数仅返回它尝试与 DropDown 列表 DisplayMember 中的内容匹配的 CountyID。我需要它来匹配 ValueMember 列表中的内容。

使用以下方法我让它工作,但它是一个 HACK,我非常感谢找到一个真正的解决方案。

lkuResidenceCounty.ItemIndex = Convert.ToInt32(row["ResidencyCountyID"].ToString());

原帖

我在成员表单上有一个查找框 (DevExpress),我使用此代码从数据库中填写可能的值 -->

        lkuResidenceCounty.Properties.DataSource = ConnectBLL.BLL.Person.CountyList();
lkuResidenceCounty.Properties.PopulateColumns();
lkuResidenceCounty.Properties.DisplayMember = "CountyName";
lkuResidenceCounty.Properties.ValueMember = "CountyID";
lkuResidenceCounty.Properties.Columns[0].Visible = false;
lkuResidenceCounty.Properties.Columns[2].Visible = false;
lkuResidenceCounty.Properties.Columns[3].Visible = false;

这工作得很好,因为 CountyName 按预期显示。

但是,当我尝试使用下面的代码为该字段加载现有成员的值时,这是从数据集中获取一行的函数的一部分 -->

lkuResidenceCounty.Properties.ValueMember = row["ResidencyCountyID"].ToString();

我得到一个空白框。我已逐步完成代码,并为成员(member)返回了正确的 ID。

不幸的是,填充下拉选项的存储过程从包含“CountyName”和“CountyID”列的维护表中提取。所以这是正确的。不幸的是,加载特定人员当前所在县的存储过程从人员表中提取,其中有一列名为“ResidencyCountyID”。之所以这样命名,是因为还有一个“ResponsibilityCountyID”列。

我需要一种让它们共存的方法,有什么解决方案吗?

谢谢!

最佳答案

DisplayMember 和 ValueMember 用于用可选值列表填充控件。要设置填充的 LookUpEdit 控件的选定值,请设置其 EditValue属性:

lkuResidenceCounty.EditValue = row["ResidencyCountyID"].ToString();

响应您的编辑:根据文档:

The currently selected row determines values for the editor's edit value and display text. The value for BaseEdit.EditValue is obtained from the RepositoryItemLookUpEditBase.ValueMember field, while the text to display in the edit box is obtained from the RepositoryItemLookUpEditBase.DisplayMember field of the selected row.

When you change BaseEdit.EditValue, the editor locates and selects the row whose RepositoryItemLookUpEditBase.ValueMember field contains the new value. The text in the edit box is changed to reflect the newly selected row.

我不使用这些控件,但在我看来它不应该像您描述的那样工作。我认为 ToString() 是问题所在,因为 EditValue 接受一个对象,所以它可能需要一个 int 作为值。尝试:

lkuResidenceCounty.EditValue = (int)row["ResidencyCountyID"];

关于c# - 不同的值成员,相同的控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1002588/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com