首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从WebDataGrid填充DropDownList

从WebDataGrid填充DropDownList
EN

Stack Overflow用户
提问于 2010-12-16 23:37:40
回答 2查看 2.5K关注 0票数 0

我有一个链接到SqlDataSource的WebDataGrid来显示数据。当一行被选中时,我想用该行中的数据填充一些文本框和下拉列表,以便进行编辑。文本框运行良好;我使用以下代码选择网格中的第二个字段(日期)并填充相应的文本框(我使用的是VB):

代码语言:javascript
复制
txtDate.Text = currentRow.Items(2).Value

但是,当我尝试使用相同的代码结构填充下拉列表时,我得到了以下错误:

代码语言:javascript
复制
'ddlType' has a SelectedValue which is invalid because it does not exist in the list of items.

我认为问题可能是下拉列表是使用type_id填充的,而网格显示的是type_name。这会导致这个问题吗?有没有办法绕过这个问题?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-12-17 00:49:02

您可以尝试以下几种方法:

  1. 更改SQLDataSource以同时返回type_id,并将列设置为visible="false“。这样,您可以选择该字段而不是名称,并将该字段用于不可能的.SelectedValue.
  2. If。然后,您可以使用如下代码(只有在下拉列表中显示的文本是唯一的,并且与网格视图中显示的文本完全相同时,此方法才有效):

'replace this with the call to currentRow.Items(#).Value

Dim sometext As String = "type_name"

DropDownListName.Items.FindByText(sometext).Selected = True

  • The的另一种可能是遍历下拉菜单中的每个元素并找到文本,这类似于暴力方法,但也有效。

'replace this with the call to currentRow.Items(#).Value

Dim sometext As String = "type_name"

For Each ddItem As ListItem In ddArriveAMPM.Items

NextIf String.Compare(sometext, ddItem.Text, True) = 1 Then ddItem.Selected = True End If

票数 0
EN

Stack Overflow用户

发布于 2010-12-17 00:00:05

您必须先将项目添加到列表框中,然后才能选择它。

代码语言:javascript
复制
DropDownListX.Items.Add("Item");

代码语言:javascript
复制
DropDownListX.Items.Add(new ListItem("String","Value"));

确保在选择新行时清除DropDown框,否则旧的行值将保留在那里。

代码语言:javascript
复制
DropDownListX.Items.Clear();

在此之后,可以使用SelectedValue

干杯,斯特凡

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4462490

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档