【问题标题】:what is the easiest way to bind data to 30 dropdownlists?将数据绑定到 30 个下拉列表的最简单方法是什么?
【发布时间】:2011-04-29 14:45:25
【问题描述】:

我的问题很简单。这是我的场景:

  1. 我有 1 个结果数据集[named="resultDS" typed="MyDataset"] 和 1 个数据表[MyDT]。
  2. 在数据表中,我有 10 行,每行有 3 列 [Column1,Column2,Column3]
  3. 在 aspx 页面上,我有 30 个下拉列表等待上述数据

dataTable里面的数据是:

第 1 列 |第 2 列 |第 3 列

方法1 | 100 | 0.5

方法2 | 125 | 0.75

方法3 | 80 | 0.4

。 . .

方法30 | 200 | 1

目前,我使用最简单的方法来绑定数据。类似:

ddl1.SelectedValue = ((MyDataSet.MyDTRow)resultDS.MyDT.Rows[0]).Column1;
ddl2.SelectedValue = ((MyDataSet.MyDTRow)resultDS.MyDT.Rows[0]).Column2;
ddl3.SelectedValue = ((MyDataSet.MyDTRow)resultDS.MyDT.Rows[0]).Column3;

ddl4.SelectedValue = ((MyDataSet.MyDTRow)resultDS.MyDT.Rows[1]).Column1;
ddl5.SelectedValue = ((MyDataSet.MyDTRow)resultDS.MyDT.Rows[1]).Column2;
ddl6.SelectedValue = ((MyDataSet.MyDTRow)resultDS.MyDT.Rows[1]).Column3;
.
.
.
ddl30.SelectedValue = ((MyDataSet.MyDTRow)resultDS.MyDT.Rows[9]).Column3;

有没有比我目前的方法更容易将数据绑定到我的 ddl 的方法?

谢谢。

vcha

【问题讨论】:

  • 在不了解您的数据表和 ddls 的情况下,我不这么认为。如果您的 30 个 ddls 实际上是 3 个 ddls 重复 10 次,那么您可以使用中继器或列表视图。
  • 为什么 ddl2 重复了两次,但其他 ddl 没有?
  • @Bala;感谢您纠正我的错字。
  • 现在 3 重复了,但我得到了那个序列,但在最后一行不应该是 Row[9] 而不是 Row[29] 吗? (只是想弄清楚模式)
  • 感谢 Bala R 和 Chad。

标签: asp.net drop-down-menu


【解决方案1】:

假设你代码的最后一行有Rows[9]

你可以尝试循环执行

for (int i=0; i<30; i++)
{
   DropDownList ddl = (DropDownList) FindControl("ddl"+(i+1));

   switch (i % 3)
   {
      case 0:
          ddl.SelectedValue =  ((MyDataSet.MyDTRow)resultDS.MyDT.Rows[i/3]).Column1;
          break;
      case 1:
          ddl.SelectedValue =  ((MyDataSet.MyDTRow)resultDS.MyDT.Rows[i/3]).Column2;
          break;
      case 2:
          ddl.SelectedValue =  ((MyDataSet.MyDTRow)resultDS.MyDT.Rows[i/3]).Column3;
          break;
    }
}

【讨论】:

  • 非常感谢 Bala R。这就是我想要的,但不知道该怎么做。
【解决方案2】:

我会在 Databound 控件中进行设置,例如 ListViewGridView

这将允许您创建将重复的 3 个 ddls,然后将 SelectedItemValue 绑定到您的列。

我正在根据您所展示的内容做出一些假设,这些假设对您有用。如果 ddls 分散在整个站点,则可能不会。

【讨论】:

  • 感谢您的建议。我必须使用 ddl 的原因是因为 UI 设计师设计了它们并将它们放在由图形对象包围的表格中。所以我不能改变控件的类型。
  • 实际上gridview在html中呈现为表格。您还可以以表格形式设置列表视图。如果您使用 css 为表格设置样式,则控件应该完美地插入
猜你喜欢
  • 2011-04-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-15
  • 2020-10-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多